performance optimize + logic fix
This commit is contained in:
parent
22d6d7e836
commit
0d0d98a69c
@ -16,10 +16,12 @@ func DeleteCommand(data discordgo.ApplicationCommandInteractionData, s *discordg
|
|||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
var beforeID = ""
|
var beforeID = ""
|
||||||
|
|
||||||
|
OnlyWebhook, _ := strconv.ParseBool(data.Options[1].Value.(string))
|
||||||
amount, _ := strconv.Atoi(data.Options[0].Value.(string))
|
amount, _ := strconv.Atoi(data.Options[0].Value.(string))
|
||||||
modulo := amount % 20
|
Webhooks, _ := s.ChannelWebhooks(i.ChannelID)
|
||||||
|
modulo := amount % 100
|
||||||
|
|
||||||
loops := math.Floor(float64(amount-modulo) / 20)
|
loops := math.Floor(float64(amount-modulo) / 100)
|
||||||
|
|
||||||
err := s.InteractionRespond(
|
err := s.InteractionRespond(
|
||||||
i.Interaction,
|
i.Interaction,
|
||||||
@ -34,7 +36,7 @@ func DeleteCommand(data discordgo.ApplicationCommandInteractionData, s *discordg
|
|||||||
}
|
}
|
||||||
|
|
||||||
for x := 0; x < int(loops); x++ {
|
for x := 0; x < int(loops); x++ {
|
||||||
messages, err = s.ChannelMessages(i.ChannelID, 20, beforeID, "", "")
|
messages, err = s.ChannelMessages(i.ChannelID, 100, beforeID, "", "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
services.HandleError(err, s)
|
services.HandleError(err, s)
|
||||||
}
|
}
|
||||||
@ -56,36 +58,44 @@ func DeleteCommand(data discordgo.ApplicationCommandInteractionData, s *discordg
|
|||||||
|
|
||||||
for _, message := range Allmessages {
|
for _, message := range Allmessages {
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func(message *discordgo.Message, i *discordgo.InteractionCreate, data discordgo.ApplicationCommandInteractionData, s *discordgo.Session) {
|
if OnlyWebhook {
|
||||||
var Webhooks []*discordgo.Webhook
|
for _, Webhook := range Webhooks {
|
||||||
Webhooks, err = s.ChannelWebhooks(i.ChannelID)
|
if message.Author.ID == Webhook.ID {
|
||||||
OnlyWebhook, _ := strconv.ParseBool(data.Options[1].Value.(string))
|
if time.Now().After(message.Timestamp.Add((24 * time.Hour) * 14)) {
|
||||||
if OnlyWebhook {
|
s.ChannelMessageDelete(i.ChannelID, message.ID)
|
||||||
for _, Webhook := range Webhooks {
|
} else {
|
||||||
if message.Author.ID == Webhook.ID {
|
messagesToDelete = append(messagesToDelete, message.ID)
|
||||||
if time.Now().After(message.Timestamp.Add((24 * time.Hour) * 14)) {
|
|
||||||
s.ChannelMessageDelete(i.ChannelID, message.ID)
|
|
||||||
} else {
|
|
||||||
messagesToDelete = append(messagesToDelete, message.ID)
|
|
||||||
}
|
|
||||||
println(message.Content + " deleted")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if time.Now().After(message.Timestamp.Add((24 * time.Hour) * 14)) {
|
|
||||||
s.ChannelMessageDelete(i.ChannelID, message.ID)
|
|
||||||
} else {
|
|
||||||
messagesToDelete = append(messagesToDelete, message.ID)
|
|
||||||
}
|
|
||||||
println(message.Content + " deleted")
|
|
||||||
}
|
}
|
||||||
wg.Done()
|
} else {
|
||||||
}(message, i, data, s)
|
if time.Now().After(message.Timestamp.Add((24 * time.Hour) * 14)) {
|
||||||
|
s.ChannelMessageDelete(i.ChannelID, message.ID)
|
||||||
|
} else {
|
||||||
|
messagesToDelete = append(messagesToDelete, message.ID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
wg.Done()
|
||||||
}
|
}
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
err = s.ChannelMessagesBulkDelete(i.ChannelID, messagesToDelete)
|
|
||||||
if err != nil {
|
modulo = len(messagesToDelete) % 100
|
||||||
services.HandleError(err, s)
|
|
||||||
|
loops = math.Floor(float64(len(messagesToDelete)-modulo) / 100)
|
||||||
|
|
||||||
|
for x := 0; x < int(loops); x++ {
|
||||||
|
index := x * 100
|
||||||
|
err = s.ChannelMessagesBulkDelete(i.ChannelID, messagesToDelete[index:index+100])
|
||||||
|
if err != nil {
|
||||||
|
services.HandleError(err, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if modulo > 0 {
|
||||||
|
index := int(loops) * 100
|
||||||
|
err = s.ChannelMessagesBulkDelete(i.ChannelID, messagesToDelete[index:index+modulo])
|
||||||
|
if err != nil {
|
||||||
|
services.HandleError(err, s)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = s.FollowupMessageCreate(i.Interaction, true, &discordgo.WebhookParams{
|
_, err = s.FollowupMessageCreate(i.Interaction, true, &discordgo.WebhookParams{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user