diff options
Diffstat (limited to 'user')
| -rw-r--r-- | user/level.go | 41 | ||||
| -rw-r--r-- | user/member.go | 14 | ||||
| -rw-r--r-- | user/xp.go | 29 |
3 files changed, 37 insertions, 47 deletions
diff --git a/user/level.go b/user/level.go index 6d9b674..be7d212 100644 --- a/user/level.go +++ b/user/level.go @@ -1,14 +1,15 @@ package user import ( - "github.com/anhgelus/gokord" - "github.com/anhgelus/gokord/utils" - "github.com/anhgelus/les-copaings-bot/config" - "github.com/anhgelus/les-copaings-bot/exp" - "github.com/bwmarrin/discordgo" "slices" "sync" "time" + + "git.anhgelus.world/anhgelus/les-copaings-bot/config" + "git.anhgelus.world/anhgelus/les-copaings-bot/exp" + "github.com/anhgelus/gokord" + "github.com/anhgelus/gokord/logger" + discordgo "github.com/nyttikord/gokord" ) func onNewLevel(dg *discordgo.Session, m *discordgo.Member, level uint) { @@ -16,7 +17,7 @@ func onNewLevel(dg *discordgo.Session, m *discordgo.Member, level uint) { xpForLevel := exp.LevelXP(level) for _, role := range cfg.XpRoles { if role.XP <= xpForLevel && !slices.Contains(m.Roles, role.RoleID) { - utils.SendDebug( + logger.Debug( "Add role", "role_id", role.RoleID, "user_id", m.User.ID, @@ -24,10 +25,10 @@ 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("user/level.go - Adding role", err.Error(), "role_id", role.RoleID) + logger.Alert("user/level.go - Adding role", err.Error(), "role_id", role.RoleID) } } else if role.XP > xpForLevel && slices.Contains(m.Roles, role.RoleID) { - utils.SendDebug( + logger.Debug( "Remove role", "role_id", role.RoleID, "user_id", m.User.ID, @@ -35,7 +36,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("user/level.go - Removing role", err.Error(), "role_id", role.RoleID) + logger.Alert("user/level.go - Removing role", err.Error(), "role_id", role.RoleID) } } } @@ -44,7 +45,7 @@ func onNewLevel(dg *discordgo.Session, m *discordgo.Member, level uint) { func (c *Copaing) OnNewLevel(dg *discordgo.Session, level uint) { m, err := dg.GuildMember(c.GuildID, c.DiscordID) if err != nil { - utils.SendAlert( + logger.Alert( "user/level.go - Getting member for new level", err.Error(), "discord_id", c.DiscordID, "guild_id", c.GuildID, @@ -58,7 +59,7 @@ func PeriodicReducer(dg *discordgo.Session) { wg := &sync.WaitGroup{} var cs []*Copaing if err := gokord.DB.Find(&cs).Error; err != nil { - utils.SendAlert("user/level.go - Fetching all copaings", err.Error()) + logger.Alert("user/level.go - Fetching all copaings", err.Error()) return } cxps := make([]*cXP, len(cs)) @@ -71,7 +72,7 @@ func PeriodicReducer(dg *discordgo.Session) { defer wg.Done() xp, err := c.GetXP() if err != nil { - utils.SendAlert("user/level.go - Getting XP", err.Error(), "copaing_id", c.ID, "guild_id", c.GuildID) + logger.Alert("user/level.go - Getting XP", err.Error(), "copaing_id", c.ID, "guild_id", c.GuildID) xp = 0 } cxps[i] = &cXP{ @@ -86,31 +87,31 @@ func PeriodicReducer(dg *discordgo.Session) { go func() { defer wg.Done() cfg := config.GetGuildConfig(g.ID) - err := gokord.DB. + res := gokord.DB. Model(&CopaingXP{}). Where("guild_id = ? and created_at < ?", g.ID, exp.TimeStampNDaysBefore(cfg.DaysXPRemains)). - Delete(&CopaingXP{}). - Error - if err != nil { - utils.SendAlert("user/level.go - Removing old XP", err.Error(), "guild_id", g.ID) + Delete(&CopaingXP{}) + if res.Error != nil { + logger.Alert("user/level.go - Removing old XP", res.Error.Error(), "guild_id", g.ID) } + logger.Debug("Guild cleaned", "guild", g.Name, "rows affected", res.RowsAffected) }() } wg.Wait() for i, c := range cxps { if i%50 == 49 { - utils.SendDebug("Sleeping...") + logger.Debug("Sleeping...") time.Sleep(15 * time.Second) // prevents spamming the API } oldXp := c.GetXP() xp, err := c.ToCopaing().GetXP() if err != nil { - utils.SendAlert("user/level.go - Getting XP", err.Error(), "guild_id", c.ID, "discord_id", c.DiscordID) + logger.Alert("user/level.go - Getting XP", err.Error(), "guild_id", c.ID, "discord_id", c.DiscordID) continue } if exp.Level(oldXp) != exp.Level(xp) { c.OnNewLevel(dg, exp.Level(xp)) } } - utils.SendDebug("Periodic reduce finished", "len(guilds)", len(dg.State.Guilds)) + logger.Debug("Periodic reduce finished", "len(guilds)", len(dg.State.Guilds)) } diff --git a/user/member.go b/user/member.go index 77ceb2e..ad8762f 100644 --- a/user/member.go +++ b/user/member.go @@ -1,9 +1,9 @@ package user import ( - "github.com/anhgelus/gokord" - "github.com/anhgelus/gokord/utils" "time" + + "github.com/anhgelus/gokord" ) type Copaing struct { @@ -34,15 +34,7 @@ const ( func GetCopaing(discordID string, guildID string) *Copaing { c := Copaing{DiscordID: discordID, GuildID: guildID} if err := c.Load(); err != nil { - utils.SendAlert( - "user/member.go - Loading user", - err.Error(), - "discord_id", - discordID, - "guild_id", - guildID, - ) - return nil + panic(err) } return &c } @@ -1,14 +1,15 @@ package user import ( - "github.com/anhgelus/gokord" - "github.com/anhgelus/gokord/utils" - "github.com/anhgelus/les-copaings-bot/config" - "github.com/anhgelus/les-copaings-bot/exp" - "github.com/bwmarrin/discordgo" "math" "slices" "sync" + + "git.anhgelus.world/anhgelus/les-copaings-bot/config" + "git.anhgelus.world/anhgelus/les-copaings-bot/exp" + "github.com/anhgelus/gokord" + "github.com/anhgelus/gokord/logger" + discordgo "github.com/nyttikord/gokord" ) type cXP struct { @@ -27,18 +28,14 @@ func (c *cXP) GetXP() uint { func (c *Copaing) AddXP(s *discordgo.Session, m *discordgo.Member, xp uint, fn func(uint, uint)) { old, err := c.GetXP() if err != nil { - utils.SendAlert("user/xp.go - Getting xp", err.Error(), "discord_id", c.DiscordID, "guild_id", c.GuildID) + logger.Alert("user/xp.go - Getting xp", err.Error(), "discord_id", c.DiscordID, "guild_id", c.GuildID) return } pastLevel := exp.Level(old) - utils.SendDebug("Adding xp", "member", m.DisplayName(), "old xp", old, "xp to add", xp, "old level", pastLevel) - c.CopaingXPs = append(c.CopaingXPs, CopaingXP{ - CopaingID: c.ID, - XP: uint(math.Floor(float64(xp) * c.GetBoost(m))), - GuildID: c.GuildID, - }) + logger.Debug("Adding xp", "member", m.DisplayName(), "old xp", old, "xp to add", xp, "old level", pastLevel) + c.CopaingXPs = append(c.CopaingXPs, CopaingXP{CopaingID: c.ID, XP: uint(math.Floor(float64(xp) * c.GetBoost(m))), GuildID: c.GuildID}) if err = c.Save(); err != nil { - utils.SendAlert( + logger.Alert( "user/xp.go - Saving user", err.Error(), "xp", c.CopaingXPs, @@ -78,7 +75,7 @@ func (c *Copaing) GetXPForDays(n uint) (uint, error) { var cxp CopaingXP err = gokord.DB.ScanRows(rows, &cxp) if err != nil { - utils.SendAlert("user/xp.go - Scanning rows", err.Error(), "copaing_id", c.ID, "guild_id", c.GuildID) + logger.Alert("user/xp.go - Scanning rows", err.Error(), "copaing_id", c.ID, "guild_id", c.GuildID) continue } xp += cxp.XP @@ -119,7 +116,7 @@ func GetBestXP(guildId string, n uint, d int) ([]CopaingAccess, error) { var c Copaing err = gokord.DB.ScanRows(rows, &c) if err != nil { - utils.SendAlert("user/xp.go - Scanning rows", err.Error(), "guild_id", guildId) + logger.Alert("user/xp.go - Scanning rows", err.Error(), "guild_id", guildId) continue } wg.Add(1) @@ -127,7 +124,7 @@ func GetBestXP(guildId string, n uint, d int) ([]CopaingAccess, error) { defer wg.Done() xp, err := c.GetXPForDays(uint(d)) if err != nil { - utils.SendAlert("user/xp.go - Fetching xp", err.Error(), "discord_id", c.DiscordID, "guild_id", guildId) + logger.Alert("user/xp.go - Fetching xp", err.Error(), "discord_id", c.DiscordID, "guild_id", guildId) return } l = append(l, &cXP{Cxp: xp, Copaing: &c}) |
