diff options
| author | William Hergès <william@herges.fr> | 2026-01-17 16:31:25 +0100 |
|---|---|---|
| committer | William Hergès <william@herges.fr> | 2026-01-17 16:31:25 +0100 |
| commit | febb77607e81fbb182dd456733ea5adafda44ed4 (patch) | |
| tree | 3ff850a34d716df8315d3b9839768e6a4ff60a4c /events.go | |
| parent | 55befa3a53ab56bac31026b1b6099b2d31fd6d91 (diff) | |
perf(member): use stat for load
Diffstat (limited to 'events.go')
| -rw-r--r-- | events.go | 22 |
1 files changed, 11 insertions, 11 deletions
@@ -24,7 +24,7 @@ var ( connectedSince = map[string]int64{} ) -func OnMessage(_ context.Context, s bot.Session, m *event.MessageCreate) { +func OnMessage(ctx context.Context, s bot.Session, m *event.MessageCreate) { if m.Author.Bot { return } @@ -32,13 +32,13 @@ func OnMessage(_ context.Context, s bot.Session, m *event.MessageCreate) { if cfg.IsDisabled(s, m.ChannelID) { return } - c := user.GetCopaing(m.Author.ID, m.GuildID) + cc := user.GetCopaing(ctx, m.Author.ID, m.GuildID) // add exp trimmed := exp.TrimMessage(strings.ToLower(m.Content)) m.Member.User = m.Author m.Member.GuildID = m.GuildID xp := min(exp.MessageXP(uint(len(trimmed)), exp.CalcDiversity(trimmed)), MaxXpPerMessage) - c.AddXP(s, m.Member, xp, func(_ uint, _ uint) { + cc.AddXP(ctx, s, m.Member, xp, func(_ uint, _ uint) { if err := s.ChannelAPI().MessageReactionAdd(m.ChannelID, m.Message.ID, "⬆"); err != nil { s.Logger().Error( "add reaction for new level", @@ -50,7 +50,7 @@ func OnMessage(_ context.Context, s bot.Session, m *event.MessageCreate) { }) } -func OnVoiceUpdate(_ context.Context, s bot.Session, e *event.VoiceStateUpdate) { +func OnVoiceUpdate(ctx context.Context, s bot.Session, e *event.VoiceStateUpdate) { if e.Member.User.Bot { return } @@ -64,7 +64,7 @@ func OnVoiceUpdate(_ context.Context, s bot.Session, e *event.VoiceStateUpdate) if cfg.IsDisabled(s, e.BeforeUpdate.ChannelID) { return } - onDisconnect(s, e) + onDisconnect(ctx, s, e) } } @@ -77,9 +77,9 @@ func onConnection(s bot.Session, e *event.VoiceStateUpdate) { connectedSince[genMapKey(e.GuildID, e.UserID)] = time.Now().Unix() } -func onDisconnect(s bot.Session, e *event.VoiceStateUpdate) { +func onDisconnect(ctx context.Context, s bot.Session, e *event.VoiceStateUpdate) { now := time.Now().Unix() - c := user.GetCopaing(e.UserID, e.GuildID) + cc := user.GetCopaing(ctx, e.UserID, e.GuildID) // check the validity of user con, ok := connectedSince[genMapKey(e.GuildID, e.UserID)] if !ok || con == NotConnected { @@ -99,7 +99,7 @@ func onDisconnect(s bot.Session, e *event.VoiceStateUpdate) { } timeInVocal = min(timeInVocal, MaxTimeInVocal) e.Member.GuildID = e.GuildID - c.AddXP(s, e.Member, exp.VocalXP(uint(timeInVocal)), func(_ uint, newLevel uint) { + cc.AddXP(ctx, s, e.Member, exp.VocalXP(uint(timeInVocal)), func(_ uint, newLevel uint) { cfg := config.GetGuildConfig(e.GuildID) if len(cfg.FallbackChannel) == 0 { return @@ -113,12 +113,12 @@ func onDisconnect(s bot.Session, e *event.VoiceStateUpdate) { }) } -func OnLeave(_ context.Context, s bot.Session, e *event.GuildMemberRemove) { +func OnLeave(ctx context.Context, s bot.Session, e *event.GuildMemberRemove) { s.Logger().Debug("leave event", "user", e.User.Username) if e.User.Bot { return } - c := user.GetCopaing(e.User.ID, e.GuildID) + c := user.GetCopaing(ctx, e.User.ID, e.GuildID).Copaing(ctx) err := gokord.DB. Where("copaing_id = ? and guild_id = ?", c.ID, e.GuildID). Delete(&user.CopaingXP{}). @@ -126,7 +126,7 @@ func OnLeave(_ context.Context, s bot.Session, e *event.GuildMemberRemove) { if err != nil { s.Logger().Error("deleting user xp from DB", "user", e.User.Username, "guild", e.GuildID) } - if err = c.Delete(); err != nil { + if err = c.Delete(ctx); err != nil { s.Logger().Error("deleting user from DB", "user", e.User.Username, "guild", e.GuildID) } } |
