aboutsummaryrefslogtreecommitdiff
path: root/commands
diff options
context:
space:
mode:
Diffstat (limited to 'commands')
-rw-r--r--commands/config.go5
-rw-r--r--commands/credits.go5
-rw-r--r--commands/rank.go28
-rw-r--r--commands/reset.go15
-rw-r--r--commands/stats.go26
-rw-r--r--commands/top.go15
6 files changed, 38 insertions, 56 deletions
diff --git a/commands/config.go b/commands/config.go
index 838f7e9..cc1e942 100644
--- a/commands/config.go
+++ b/commands/config.go
@@ -7,7 +7,6 @@ import (
"git.anhgelus.world/anhgelus/les-copaings-bot/config"
"git.anhgelus.world/anhgelus/les-copaings-bot/exp"
"github.com/anhgelus/gokord/cmd"
- "github.com/anhgelus/gokord/logger"
discordgo "github.com/nyttikord/gokord"
)
@@ -15,7 +14,7 @@ const (
ConfigModify = "config_modify"
)
-func Config(_ *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
+func Config(s *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
cfg := config.GetGuildConfig(i.GuildID)
roles := ""
l := len(cfg.XpRoles) - 1
@@ -82,6 +81,6 @@ func Config(_ *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMa
)
err := resp.SetMessage(msg).IsEphemeral().Send()
if err != nil {
- logger.Alert("config/guild.go - Sending config", err.Error())
+ s.LogError(err, "sending config")
}
}
diff --git a/commands/credits.go b/commands/credits.go
index d58547e..e5fd711 100644
--- a/commands/credits.go
+++ b/commands/credits.go
@@ -3,11 +3,10 @@ package commands
import (
"github.com/anhgelus/gokord"
"github.com/anhgelus/gokord/cmd"
- "github.com/anhgelus/gokord/logger"
discordgo "github.com/nyttikord/gokord"
)
-func Credits(_ *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
+func Credits(s *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
msg := "**Les Copaings**, le bot gérant les serveurs privés de [anhgelus](<https://anhgelus.world/>).\n"
msg += "Code source : <https://git.anhgelus.world/anhgelus/les-copaings-bot>\n\n"
msg += "Host du bot : " + gokord.BaseCfg.GetAuthor() + ".\n\n"
@@ -15,6 +14,6 @@ func Credits(_ *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionM
msg += "- [Inter](<https://github.com/rsms/inter>)"
err := resp.SetMessage(msg).Send()
if err != nil {
- logger.Alert("commands/credits.go - Sending credits", err.Error(), "guild_id", i.GuildID)
+ s.LogError(err, "sending credits")
}
}
diff --git a/commands/rank.go b/commands/rank.go
index 0adfde6..d3a9f70 100644
--- a/commands/rank.go
+++ b/commands/rank.go
@@ -6,7 +6,6 @@ import (
"git.anhgelus.world/anhgelus/les-copaings-bot/exp"
"git.anhgelus.world/anhgelus/les-copaings-bot/user"
"github.com/anhgelus/gokord/cmd"
- "github.com/anhgelus/gokord/logger"
discordgo "github.com/nyttikord/gokord"
)
@@ -20,22 +19,16 @@ func Rank(s *discordgo.Session, i *discordgo.InteractionCreate, optMap cmd.Optio
if u.Bot {
err = resp.SetMessage("Imagine si les bots avaient un niveau :rolling_eyes:").IsEphemeral().Send()
if err != nil {
- logger.Alert("commands/rank.go - Reply error user is a bot", err.Error())
+ s.LogError(err, "reply error user is a bot")
}
+ return
}
m, err = s.GuildAPI().Member(i.GuildID, u.ID)
if err != nil {
- logger.Alert(
- "commands/rank.go - Fetching guild member",
- err.Error(),
- "discord_id",
- u.ID,
- "guild_id",
- i.GuildID,
- )
+ s.LogError(err, "Fetching guild member %s in %s", u.Username, i.GuildID)
err = resp.SetMessage("Erreur : impossible de récupérer le membre").IsEphemeral().Send()
if err != nil {
- logger.Alert("commands/rank.go - Reply error fetching guild member", err.Error())
+ s.LogError(err, "reply error fetching guild member")
}
return
}
@@ -44,17 +37,10 @@ func Rank(s *discordgo.Session, i *discordgo.InteractionCreate, optMap cmd.Optio
}
xp, err := c.GetXP()
if err != nil {
- logger.Alert(
- "commands/rank.go - Fetching xp",
- err.Error(),
- "discord_id",
- c.ID,
- "guild_id",
- i.GuildID,
- )
+ s.LogError(err, "fetching xp for copaing %s in %s", c.ID, i.GuildID)
err = resp.SetMessage("Erreur : impossible de récupérer l'XP").IsEphemeral().Send()
if err != nil {
- logger.Alert("commands/rank.go - Reply error fetching xp", err.Error())
+ s.LogError(err, "reply error fetching xp")
}
return
}
@@ -68,6 +54,6 @@ func Rank(s *discordgo.Session, i *discordgo.InteractionCreate, optMap cmd.Optio
nxtLvlXP-xp,
)).Send()
if err != nil {
- logger.Alert("commands/rank.go - Sending rank", err.Error())
+ s.LogError(err, "sending rank")
}
}
diff --git a/commands/reset.go b/commands/reset.go
index f50bb21..77561c1 100644
--- a/commands/reset.go
+++ b/commands/reset.go
@@ -4,15 +4,14 @@ import (
"git.anhgelus.world/anhgelus/les-copaings-bot/user"
"github.com/anhgelus/gokord"
"github.com/anhgelus/gokord/cmd"
- "github.com/anhgelus/gokord/logger"
discordgo "github.com/nyttikord/gokord"
)
-func Reset(_ *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
+func Reset(s *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
var copaings []*user.Copaing
gokord.DB.Where("guild_id = ?", i.GuildID).Delete(&copaings)
if err := resp.IsEphemeral().SetMessage("L'XP a été reset.").Send(); err != nil {
- logger.Alert("commands/reset.go - Sending success (all)", err.Error())
+ s.LogError(err, "sending reset success")
}
}
@@ -21,26 +20,26 @@ func ResetUser(s *discordgo.Session, i *discordgo.InteractionCreate, optMap cmd.
v, ok := optMap["user"]
if !ok {
if err := resp.SetMessage("Le user n'a pas été renseigné.").Send(); err != nil {
- logger.Alert("commands/reset.go - Copaing not set", err.Error())
+ s.LogError(err, "sending error copaing not set")
}
return
}
m := v.UserValue(s.UserAPI())
if m.Bot {
if err := resp.SetMessage("Les bots n'ont pas de niveau :upside_down:").Send(); err != nil {
- logger.Alert("commands/reset.go - Copaing not set", err.Error())
+ s.LogError(err, "sending error bot does not have xp")
}
return
}
err := user.GetCopaing(m.ID, i.GuildID).Delete()
if err != nil {
- logger.Alert("commands/reset.go - Copaing not deleted", err.Error(), "discord_id", m.ID, "guild_id", i.GuildID)
+ s.LogError(err, "deleting copaings %s in %s", m.Username, i.GuildID)
err = resp.SetMessage("Erreur : impossible de reset l'utilisateur").Send()
if err != nil {
- logger.Alert("commands/reset.go - Error deleting", err.Error())
+ s.LogError(err, "sending error while deleting")
}
}
if err = resp.SetMessage("Le user bien été reset.").Send(); err != nil {
- logger.Alert("commands/reset.go - Sending success (user)", err.Error())
+ s.LogError(err, "sending reset success")
}
}
diff --git a/commands/stats.go b/commands/stats.go
index 1a7a379..e2c2ba4 100644
--- a/commands/stats.go
+++ b/commands/stats.go
@@ -15,7 +15,6 @@ import (
"git.anhgelus.world/anhgelus/les-copaings-bot/user"
"github.com/anhgelus/gokord"
"github.com/anhgelus/gokord/cmd"
- "github.com/anhgelus/gokord/logger"
"github.com/jackc/pgx/v5/pgtype"
discordgo "github.com/nyttikord/gokord"
"github.com/nyttikord/gokord/channel"
@@ -53,7 +52,7 @@ func Stats(s *discordgo.Session, i *discordgo.InteractionCreate, opt cmd.OptionM
if in < 1 || uint(in) > cfg.DaysXPRemains {
msg := fmt.Sprintf("Nombre de jours invalide. Il doit être strictement positif et inférieur à %d", cfg.DaysXPRemains)
if err := resp.SetMessage(msg).IsEphemeral().Send(); err != nil {
- logger.Alert("commands/stats.go - Sending invalid days", err.Error())
+ s.LogError(err, "sending error invalid days")
}
return
}
@@ -61,7 +60,7 @@ func Stats(s *discordgo.Session, i *discordgo.InteractionCreate, opt cmd.OptionM
}
err := resp.IsDeferred().Send()
if err != nil {
- logger.Alert("commands/stats.go - Sending deferred", err.Error())
+ s.LogError(err, "sending deferred")
return
}
go func() {
@@ -72,15 +71,16 @@ func Stats(s *discordgo.Session, i *discordgo.InteractionCreate, opt cmd.OptionM
w, err = statsAll(s, i, days)
}
if err != nil {
+ s.LogError(err, "generating stats in %s", i.GuildID)
if err = resp.IsEphemeral().SetMessage("Il y a eu une erreur...").Send(); err != nil {
- logger.Alert("commands/stats.go - Sending error occurred", err.Error())
+ s.LogError(err, "sending error occurred")
}
return
}
b := new(bytes.Buffer)
_, err = w.WriteTo(b)
if err != nil {
- logger.Alert("commands/stats.go - Writing png", err.Error())
+ s.LogError(err, "writing png")
}
err = resp.AddFile(&channel.File{
Name: "plot.png",
@@ -88,7 +88,7 @@ func Stats(s *discordgo.Session, i *discordgo.InteractionCreate, opt cmd.OptionM
Reader: b,
}).Send()
if err != nil {
- logger.Alert("commands/stats.go - Sending response", err.Error())
+ s.LogError(err, "sending stats")
}
}()
}
@@ -117,7 +117,7 @@ func stats(s *discordgo.Session, i *discordgo.InteractionCreate, days int, execS
if gokord.Debug {
var rawCopaingData []*user.CopaingXP
if err := execSql("SELECT * FROM copaing_xps ", "").Scan(&rawCopaingData).Error; err != nil {
- logger.Alert("commands/stats.go - Fetching result", err.Error())
+ s.LogError(err, "fetching result")
return nil, err
}
rawData = make([]*data, len(rawCopaingData))
@@ -133,7 +133,7 @@ func stats(s *discordgo.Session, i *discordgo.InteractionCreate, days int, execS
if err := execSql(
`SELECT "created_at"::date::text, sum("xp") as xp, "copaing_id" FROM copaing_xps `, ` GROUP BY "created_at"::date, "copaing_id"`,
).Scan(&rawDbData).Error; err != nil {
- logger.Alert("commands/stats.go - Fetching result", err.Error())
+ s.LogError(err, "fetching result")
return nil, err
}
rawData = make([]*data, len(rawDbData))
@@ -155,10 +155,10 @@ func stats(s *discordgo.Session, i *discordgo.InteractionCreate, days int, execS
var cp user.Copaing
if err := gokord.DB.First(&cp, raw.CopaingID).Error; err != nil {
if !errors.Is(err, gorm.ErrRecordNotFound) {
- logger.Alert("commands/stats.go - Finding copaing", err.Error(), "id", raw.CopaingID)
+ s.LogError(err, "finding copaing %d", raw.CopaingID)
return nil, err
}
- logger.Warn("Copaing not found, skipping entry", "old_id", raw.CopaingID)
+ s.LogWarn("Copaing %d not found, skipping", raw.CopaingID)
continue
}
copaings[raw.CopaingID] = &cp
@@ -202,7 +202,7 @@ func generatePlot(s *discordgo.Session, i *discordgo.InteractionCreate, copaings
for in, c := range copaings {
m, err := s.GuildAPI().Member(i.GuildID, c.DiscordID)
if err != nil {
- logger.Alert("commands/stats.go - Fetching guild member", err.Error())
+ s.LogError(err, "fetching guild member")
return nil, err
}
slices.SortFunc(stats[in], func(a, b plotter.XY) int {
@@ -216,7 +216,7 @@ func generatePlot(s *discordgo.Session, i *discordgo.InteractionCreate, copaings
})
l, _, err := plotter.NewLinePoints(plotter.XYs(stats[in]))
if err != nil {
- logger.Alert("commands/stats.go - Adding line points", err.Error())
+ s.LogError(err, "adding line points")
return nil, err
}
l.Color = colors[cnt%len(colors)]
@@ -226,7 +226,7 @@ func generatePlot(s *discordgo.Session, i *discordgo.InteractionCreate, copaings
}
w, err := p.WriterTo(8*vg.Inch, 6*vg.Inch, "png")
if err != nil {
- logger.Alert("commands/stats.go - Generating png", err.Error())
+ s.LogError(err, "generating png")
return nil, err
}
return w, nil
diff --git a/commands/top.go b/commands/top.go
index 21a1456..195ee9b 100644
--- a/commands/top.go
+++ b/commands/top.go
@@ -8,34 +8,33 @@ import (
"git.anhgelus.world/anhgelus/les-copaings-bot/exp"
"git.anhgelus.world/anhgelus/les-copaings-bot/user"
"github.com/anhgelus/gokord/cmd"
- "github.com/anhgelus/gokord/logger"
discordgo "github.com/nyttikord/gokord"
"github.com/nyttikord/gokord/channel"
)
-func Top(_ *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
+func Top(s *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
err := resp.IsDeferred().Send()
if err != nil {
- logger.Alert("commands/top.go - Sending deferred", err.Error())
+ s.LogError(err, "sending deferred")
return
}
embeds := make([]*channel.MessageEmbed, 3)
wg := sync.WaitGroup{}
- fn := func(s string, n uint, d int, id int) {
+ fn := func(str string, n uint, d int, id int) {
defer wg.Done()
tops, err := user.GetBestXP(i.GuildID, n, d)
if err != nil {
- logger.Alert("commands/top.go - Fetching best xp", err.Error(), "n", n, "d", d, "id", id, "guild_id", i.GuildID)
+ s.LogError(err, "fetching best xp, n: %d, d: %d, id: %d, guild: %s", n, d, id, i.GuildID)
embeds[id] = &channel.MessageEmbed{
- Title: s,
+ Title: str,
Description: "Erreur : impossible de récupérer la liste",
Color: 0x831010,
}
return
}
embeds[id] = &channel.MessageEmbed{
- Title: s,
+ Title: str,
Description: genTopsMessage(tops),
Color: 0x10E6AD,
}
@@ -60,7 +59,7 @@ func Top(_ *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap,
}
err = resp.Send()
if err != nil {
- logger.Alert("commands/top.go - Sending response top", err.Error())
+ s.LogError(err, "sending response top")
}
}()
}