diff --git a/config/redis.go b/config/redis.go index 8aa370d..bfec5a0 100644 --- a/config/redis.go +++ b/config/redis.go @@ -23,6 +23,6 @@ func CloseRedisClient() { } err := redisClient.Close() if err != nil { - utils.SendAlert("exp/member.go - Closing redis client", err.Error()) + utils.SendAlert("config/redis.go - Closing redis client", err.Error()) } } diff --git a/events.go b/events.go index e35ced0..a00fe6c 100644 --- a/events.go +++ b/events.go @@ -7,7 +7,7 @@ import ( "github.com/anhgelus/gokord" "github.com/anhgelus/gokord/utils" "github.com/anhgelus/les-copaings-bot/config" - xp2 "github.com/anhgelus/les-copaings-bot/exp" + "github.com/anhgelus/les-copaings-bot/exp" "github.com/anhgelus/les-copaings-bot/user" "github.com/bwmarrin/discordgo" "github.com/redis/go-redis/v9" @@ -38,14 +38,14 @@ func OnMessage(s *discordgo.Session, m *discordgo.MessageCreate) { trimmed := utils.TrimMessage(strings.ToLower(m.Content)) m.Member.User = m.Author m.Member.GuildID = m.GuildID - xp := xp2.MessageXP(uint(len(trimmed)), calcDiversity(trimmed)) + xp := exp.MessageXP(uint(len(trimmed)), calcDiversity(trimmed)) if xp > MaxXpPerMessage { xp = MaxXpPerMessage } c.AddXP(s, m.Member, xp, func(_ uint, _ uint) { if err := s.MessageReactionAdd(m.ChannelID, m.Message.ID, "⬆"); err != nil { utils.SendAlert( - "exp/events.go - add reaction for new level", err.Error(), + "events.go - add reaction for new level", err.Error(), "channel id", m.ChannelID, "message id", m.Message.ID, ) @@ -71,7 +71,7 @@ func OnVoiceUpdate(s *discordgo.Session, e *discordgo.VoiceStateUpdate) { cfg := config.GetGuildConfig(e.GuildID) client, err := config.GetRedisClient() if err != nil { - utils.SendAlert("exp/events.go - Getting redis client", err.Error()) + utils.SendAlert("events.go - Getting redis client", err.Error()) return } if e.BeforeUpdate == nil && e.ChannelID != "" { @@ -97,7 +97,7 @@ func onConnection(_ *discordgo.Session, e *discordgo.VoiceStateUpdate, client *r 0, ).Err() if err != nil { - utils.SendAlert("exp/events.go - Setting connected_since", err.Error()) + utils.SendAlert("events.go - Setting connected_since", err.Error()) } } @@ -114,16 +114,16 @@ func onDisconnect(s *discordgo.Session, e *discordgo.VoiceStateUpdate, client *r return } if res.Err() != nil { - utils.SendAlert("exp/events.go - Getting connected_since", res.Err().Error()) + utils.SendAlert("events.go - Getting connected_since", res.Err().Error()) err := client.Set(context.Background(), key, strconv.Itoa(NotConnected), 0).Err() if err != nil { - utils.SendAlert("exp/events.go - Set connected_since to not connected after get err", err.Error()) + utils.SendAlert("events.go - Set connected_since to not connected after get err", err.Error()) } return } con, err := res.Int64() if err != nil { - utils.SendAlert("exp/events.go - Converting result to int64", err.Error()) + utils.SendAlert("events.go - Converting result to int64", err.Error()) return } // check validity of user (2) @@ -136,12 +136,12 @@ func onDisconnect(s *discordgo.Session, e *discordgo.VoiceStateUpdate, client *r utils.SendDebug("User disconnected", "username", e.Member.DisplayName(), "since", con) err = client.Set(context.Background(), key, strconv.Itoa(NotConnected), 0).Err() if err != nil { - utils.SendAlert("exp/events.go - Set connected_since to not connected", err.Error()) + utils.SendAlert("events.go - Set connected_since to not connected", err.Error()) } // add exp timeInVocal := now - con if timeInVocal < 0 { - utils.SendAlert("exp/events.go - Calculating time spent in vocal", "the time is negative") + utils.SendAlert("events.go - Calculating time spent in vocal", "the time is negative") return } if timeInVocal > MaxTimeInVocal { @@ -149,13 +149,13 @@ func onDisconnect(s *discordgo.Session, e *discordgo.VoiceStateUpdate, client *r timeInVocal = MaxTimeInVocal } e.Member.GuildID = e.GuildID - c.AddXP(s, e.Member, xp2.VocalXP(uint(timeInVocal)), func(_ uint, newLevel uint) { + c.AddXP(s, e.Member, exp.VocalXP(uint(timeInVocal)), func(_ uint, newLevel uint) { cfg := config.GetGuildConfig(e.GuildID) _, err = s.ChannelMessageSend(cfg.FallbackChannel, fmt.Sprintf( "%s est maintenant niveau %d", e.Member.Mention(), newLevel, )) if err != nil { - utils.SendAlert("exp/events.go - Sending new level in fallback channel", err.Error()) + utils.SendAlert("events.go - Sending new level in fallback channel", err.Error()) } }) } @@ -165,7 +165,7 @@ func OnLeave(_ *discordgo.Session, e *discordgo.GuildMemberRemove) { c := user.GetCopaing(e.User.ID, e.GuildID) if err := gokord.DB.Where("guild_id = ?", e.GuildID).Delete(c).Error; err != nil { utils.SendAlert( - "exp/events.go - deleting user from db", err.Error(), + "events.go - deleting user from db", err.Error(), "user_id", e.User.ID, "guild_id", e.GuildID, ) diff --git a/user/level.go b/user/level.go index 0abd642..122b707 100644 --- a/user/level.go +++ b/user/level.go @@ -24,7 +24,7 @@ func onNewLevel(dg *discordgo.Session, m *discordgo.Member, level uint) { ) err := dg.GuildMemberRoleAdd(m.GuildID, m.User.ID, role.RoleID) if err != nil { - utils.SendAlert("exp/level.go - Adding role", err.Error(), "role_id", role.RoleID) + utils.SendAlert("user/level.go - Adding role", err.Error(), "role_id", role.RoleID) } } else if role.XP > xpForLevel && slices.Contains(m.Roles, role.RoleID) { utils.SendDebug( @@ -35,7 +35,7 @@ func onNewLevel(dg *discordgo.Session, m *discordgo.Member, level uint) { ) err := dg.GuildMemberRoleRemove(m.GuildID, m.User.ID, role.RoleID) if err != nil { - utils.SendAlert("exp/level.go - Removing role", err.Error(), "role_id", role.RoleID) + utils.SendAlert("user/level.go - Removing role", err.Error(), "role_id", role.RoleID) } } } @@ -45,7 +45,7 @@ func (c *Copaing) OnNewLevel(dg *discordgo.Session, level uint) { m, err := dg.GuildMember(c.GuildID, c.DiscordID) if err != nil { utils.SendAlert( - "exp/level.go - Getting member for new level", err.Error(), + "user/level.go - Getting member for new level", err.Error(), "discord_id", c.DiscordID, "guild_id", c.GuildID, ) @@ -60,7 +60,7 @@ func LastEventUpdate(dg *discordgo.Session, c *Copaing) { xp := c.XPAlreadyRemoved() oldXP := c.XP if l-xp < 0 { - utils.SendWarn("lose - exp already removed is negative", "lose", l, "exp", xp) + utils.SendWarn("lose - xp already removed is negative", "lose", l, "xp", xp) c.XP = 0 } else { calc := int(c.XP) - int(l) + int(c.XPAlreadyRemoved()) @@ -84,7 +84,7 @@ func LastEventUpdate(dg *discordgo.Session, c *Copaing) { } if err := c.Save(); err != nil { utils.SendAlert( - "exp/level.go - Saving user", err.Error(), + "user/level.go - Saving user", err.Error(), "exp", c.XP, "discord_id", c.DiscordID, "guild_id", c.GuildID, @@ -103,7 +103,7 @@ func UpdateXP(dg *discordgo.Session, c *Copaing) { l := exp.Lose(h, c.XP) xp := c.XPAlreadyRemoved() if l-xp < 0 { - utils.SendWarn("lose - xp_removed is negative", "lose", l, "exp removed", xp) + utils.SendWarn("lose - xp_removed is negative", "lose", l, "xp removed", xp) c.AddXPAlreadyRemoved(0) } else { calc := int(c.XP) - int(l) + int(xp) @@ -130,8 +130,8 @@ func UpdateXP(dg *discordgo.Session, c *Copaing) { utils.SendDebug("Save XP", "old", oldXP, "new", c.XP, "user", c.DiscordID) if err := c.Save(); err != nil { utils.SendAlert( - "exp/level.go - Saving user", err.Error(), - "exp", c.XP, + "user/level.go - Saving user", err.Error(), + "xp", c.XP, "discord_id", c.DiscordID, "guild_id", c.GuildID, ) @@ -145,7 +145,7 @@ func PeriodicReducer(dg *discordgo.Session) { var cs []*Copaing err := gokord.DB.Where("guild_id = ?", g.ID).Find(&cs).Error if err != nil { - utils.SendAlert("exp/level.go - Querying all copaings in Guild", err.Error(), "guild_id", g.ID) + utils.SendAlert("user/level.go - Querying all copaings in Guild", err.Error(), "guild_id", g.ID) continue } for i, c := range cs { @@ -156,14 +156,14 @@ func PeriodicReducer(dg *discordgo.Session) { u, err = dg.User(c.DiscordID) if err != nil { utils.SendAlert( - "exp/level.go - Fetching user", err.Error(), + "user/level.go - Fetching user", err.Error(), "discord_id", c.DiscordID, "guild_id", g.ID, ) utils.SendWarn("Removing user from database", "discord_id", c.DiscordID) if err = gokord.DB.Delete(c).Error; err != nil { utils.SendAlert( - "exp/level.go - Removing user from database", err.Error(), + "user/level.go - Removing user from database", err.Error(), "discord_id", c.DiscordID, "guild_id", g.ID, ) @@ -175,7 +175,7 @@ func PeriodicReducer(dg *discordgo.Session) { } if _, err = dg.GuildMember(g.ID, c.DiscordID); err != nil { utils.SendAlert( - "exp/level.go - Fetching member", err.Error(), + "user/level.go - Fetching member", err.Error(), "discord_id", c.DiscordID, "guild_id", g.ID, ) @@ -186,7 +186,7 @@ func PeriodicReducer(dg *discordgo.Session) { ) if err = gokord.DB.Where("guild_id = ?", g.ID).Delete(c).Error; err != nil { utils.SendAlert( - "exp/level.go - Removing user from guild in database", err.Error(), + "user/level.go - Removing user from guild in database", err.Error(), "discord_id", c.DiscordID, "guild_id", g.ID, ) diff --git a/user/member.go b/user/member.go index 8a33ed3..91327ad 100644 --- a/user/member.go +++ b/user/member.go @@ -39,7 +39,7 @@ func GetCopaing(discordID string, guildID string) *Copaing { c := Copaing{DiscordID: discordID, GuildID: guildID} if err := c.Load(); err != nil { utils.SendAlert( - "exp/member.go - Loading user", + "user/member.go - Loading user", err.Error(), "discord_id", discordID, @@ -70,7 +70,7 @@ func (c *Copaing) Load() error { if err := gokord.DB.Unscoped().Find(&tmp).Error; err != nil { // if error, avoid getting old data and use new one utils.SendAlert( - "exp/member.go - Getting user in soft delete", err.Error(), + "user/member.go - Getting user in soft delete", err.Error(), "discord_id", c.DiscordID, "guild_id", c.DiscordID, "last_id", l.ID, @@ -89,7 +89,7 @@ func (c *Copaing) Load() error { // delete old data if err = gokord.DB.Unscoped().Delete(&tmp).Error; err != nil { utils.SendAlert( - "exp/member.go - Deleting user in soft delete", err.Error(), + "user/member.go - Deleting user in soft delete", err.Error(), "discord_id", c.DiscordID, "guild_id", c.DiscordID, "last_id", l.ID, diff --git a/user/xp.go b/user/xp.go index 6cd9b75..4b93f26 100644 --- a/user/xp.go +++ b/user/xp.go @@ -22,7 +22,7 @@ func (c *Copaing) AddXP(s *discordgo.Session, m *discordgo.Member, xp uint, fn f c.XP += xp if err := c.Save(); err != nil { utils.SendAlert( - "exp/level.go - Saving user", + "user/xp.go - Saving user", err.Error(), "exp", c.XP, @@ -44,19 +44,19 @@ func (c *Copaing) AddXP(s *discordgo.Session, m *discordgo.Member, xp uint, fn f func (c *Copaing) SetLastEvent() { client, err := config.GetRedisClient() if err != nil { - utils.SendAlert("exp/member.go - Getting redis client (set)", err.Error()) + utils.SendAlert("user/xp.go - Getting redis client (set)", err.Error()) return } t := time.Now().Unix() err = client.Set(context.Background(), c.GenKey(LastEvent), strconv.FormatInt(t, 10), 0).Err() if err != nil { - utils.SendAlert("exp/member.go - Setting last event", err.Error(), "time", t, "base_key", c.GenKey("")) + utils.SendAlert("user/xp.go - Setting last event", err.Error(), "time", t, "base_key", c.GenKey("")) return } err = client.Set(context.Background(), c.GenKey(AlreadyRemoved), "0", 0).Err() if err != nil { utils.SendAlert( - "exp/member.go - Setting already removed to 0", + "user/xp.go - Setting already removed to 0", err.Error(), "time", t, @@ -70,21 +70,21 @@ func (c *Copaing) SetLastEvent() { func (c *Copaing) HourSinceLastEvent() uint { client, err := config.GetRedisClient() if err != nil { - utils.SendAlert("exp/member.go - Getting redis client (get)", err.Error()) + utils.SendAlert("user/xp.go - Getting redis client (get)", err.Error()) return 0 } res := client.Get(context.Background(), c.GenKey(LastEvent)) if errors.Is(res.Err(), redis.Nil) { return 0 } else if res.Err() != nil { - utils.SendAlert("exp/member.go - Getting last event", res.Err().Error(), "base_key", c.GenKey("")) + utils.SendAlert("user/xp.go - Getting last event", res.Err().Error(), "base_key", c.GenKey("")) return 0 } t := time.Now().Unix() last, err := strconv.Atoi(res.Val()) if err != nil { utils.SendAlert( - "exp/member.go - Converting time fetched into int (last event)", + "user/xp.go - Converting time fetched into int (last event)", err.Error(), "base_key", c.GenKey(""), @@ -102,14 +102,14 @@ func (c *Copaing) HourSinceLastEvent() uint { func (c *Copaing) AddXPAlreadyRemoved(xp uint) uint { client, err := config.GetRedisClient() if err != nil { - utils.SendAlert("exp/member.go - Getting redis client (set)", err.Error()) + utils.SendAlert("user/xp.go - Getting redis client (set)", err.Error()) return 0 } exp := xp + c.XPAlreadyRemoved() err = client.Set(context.Background(), c.GenKey(AlreadyRemoved), exp, 0).Err() if err != nil { utils.SendAlert( - "exp/member.go - Setting already removed", + "user/xp.go - Setting already removed", err.Error(), "exp already removed", exp, @@ -124,20 +124,20 @@ func (c *Copaing) AddXPAlreadyRemoved(xp uint) uint { func (c *Copaing) XPAlreadyRemoved() uint { client, err := config.GetRedisClient() if err != nil { - utils.SendAlert("exp/member.go - Getting redis client (exp)", err.Error()) + utils.SendAlert("user/xp.go - Getting redis client (exp)", err.Error()) return 0 } res := client.Get(context.Background(), fmt.Sprintf("%s:%s", c.GenKey(""), AlreadyRemoved)) if errors.Is(res.Err(), redis.Nil) { return 0 } else if res.Err() != nil { - utils.SendAlert("exp/member.go - Getting already removed", res.Err().Error(), "base_key", c.GenKey("")) + utils.SendAlert("user/xp.go - Getting already removed", res.Err().Error(), "base_key", c.GenKey("")) return 0 } xp, err := strconv.Atoi(res.Val()) if err != nil { utils.SendAlert( - "exp/member.go - Converting time fetched into int (already removed)", + "user/xp.go - Converting time fetched into int (already removed)", err.Error(), "base_key", c.GenKey(""), @@ -148,11 +148,11 @@ func (c *Copaing) XPAlreadyRemoved() uint { } if xp < 0 { utils.SendAlert( - "exp/member.go - Assertion exp >= 0", - "exp is negative", + "user/xp.go - Assertion exp >= 0", + "xp is negative", "base_key", c.GenKey(""), - "exp", + "xp", xp, ) return 0 @@ -172,7 +172,7 @@ func (c *Copaing) AfterDelete(db *gorm.DB) error { ch := utils.NewTimer(48*time.Hour, func(stop chan<- interface{}) { if err := db.Unscoped().Where("id = ?", id).Delete(c).Error; err != nil { utils.SendAlert( - "exp/member.go - Removing user from database", err.Error(), + "user/xp.go - Removing user from database", err.Error(), "discord_id", dID, "guild_id", gID, )