diff options
| author | William Hergès <william@herges.fr> | 2025-08-31 16:34:41 +0200 |
|---|---|---|
| committer | William Hergès <william@herges.fr> | 2025-08-31 16:34:41 +0200 |
| commit | a23130addc0a8e988a5b360b97d72d2917253831 (patch) | |
| tree | c46b656967101bfd6e46883795ca5ba35e4cfb1b /commands/stats.go | |
| parent | 0fe0cf1c148316d667018d3f5b3e9d91f0f6c797 (diff) | |
perf(stats): create goroutine for plot generation
Diffstat (limited to 'commands/stats.go')
| -rw-r--r-- | commands/stats.go | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/commands/stats.go b/commands/stats.go index 351090f..ccd9412 100644 --- a/commands/stats.go +++ b/commands/stats.go @@ -53,31 +53,33 @@ func Stats(s *discordgo.Session, i *discordgo.InteractionCreate, opt cmd.OptionM logger.Alert("commands/stats.go - Sending deferred", err.Error()) return } - var w io.WriterTo - if v, ok := opt["user"]; ok { - w, err = statsMember(s, i, days, v.UserValue(s).ID) - } else { - w, err = statsAll(s, i, days) - } - if err != nil { - if err = resp.IsEphemeral().SetMessage("Il y a eu une erreur...").Send(); err != nil { - logger.Alert("commands/stats.go - Sending error occurred", err.Error()) + go func() { + var w io.WriterTo + if v, ok := opt["user"]; ok { + w, err = statsMember(s, i, days, v.UserValue(s).ID) + } else { + w, err = statsAll(s, i, days) } - return - } - b := new(bytes.Buffer) - _, err = w.WriteTo(b) - if err != nil { - logger.Alert("commands/stats.go - Writing png", err.Error()) - } - err = resp.AddFile(&discordgo.File{ - Name: "plot.png", - ContentType: "image/png", - Reader: b, - }).Send() - if err != nil { - logger.Alert("commands/stats.go - Sending response", err.Error()) - } + if err != nil { + if err = resp.IsEphemeral().SetMessage("Il y a eu une erreur...").Send(); err != nil { + logger.Alert("commands/stats.go - Sending error occurred", err.Error()) + } + return + } + b := new(bytes.Buffer) + _, err = w.WriteTo(b) + if err != nil { + logger.Alert("commands/stats.go - Writing png", err.Error()) + } + err = resp.AddFile(&discordgo.File{ + Name: "plot.png", + ContentType: "image/png", + Reader: b, + }).Send() + if err != nil { + logger.Alert("commands/stats.go - Sending response", err.Error()) + } + }() } func statsAll(s *discordgo.Session, i *discordgo.InteractionCreate, days uint) (io.WriterTo, error) { |
