diff --git a/src/internal/bot/commands.go b/src/internal/bot/commands.go index 6394be6..3f1c784 100644 --- a/src/internal/bot/commands.go +++ b/src/internal/bot/commands.go @@ -268,7 +268,12 @@ func purgeRecentEmojis(s *discordgo.Session, i *discordgo.InteractionCreate) { x := 0 for _, emoji := range emojis { - err := s.MessageReactionRemove(emoji.ChannelID, emoji.MessageID, emoji.EmojiID, emoji.UserID) + emojiID := emoji.EmojiID + if emojiID == "" { + emojiID = emoji.EmojiName + } + + err := s.MessageReactionRemove(emoji.ChannelID, emoji.MessageID, emojiID, emoji.UserID) if err != nil { slog.Error("Error removing emoji reaction", "err", err, "emoji", emoji.EmojiID, "user", user.ID) continue diff --git a/src/internal/db/emoji_usage.go b/src/internal/db/emoji_usage.go index 325121f..86248fb 100644 --- a/src/internal/db/emoji_usage.go +++ b/src/internal/db/emoji_usage.go @@ -14,6 +14,7 @@ type EmojiUsage struct { MessageID string UserID string EmojiID string + EmojiName string Timestamp string } @@ -158,7 +159,7 @@ func (db *Database) GetTopEmojisForGuildUser(guildID string, userID string, num func (db *Database) GetRecentEmojisForUser(guildID string, userID string, hours int64) ([]EmojiUsage, error) { var data []EmojiUsage row, err := db.db.Query( - "SELECT guild_id, channel_id, message_id, user_id, emoji_id, timestamp "+ + "SELECT guild_id, channel_id, message_id, user_id, emoji_id, emoji_name, timestamp "+ "FROM `emoji_usage` WHERE `guild_id` = ? AND `user_id` = ? AND timestamp >= datetime('now', '-"+fmt.Sprintf("%d", hours)+" hours') "+ "ORDER BY timestamp DESC", guildID, @@ -172,7 +173,7 @@ func (db *Database) GetRecentEmojisForUser(guildID string, userID string, hours defer row.Close() for row.Next() { usage := EmojiUsage{} - row.Scan(&usage.GuildID, &usage.ChannelID, &usage.MessageID, &usage.UserID, &usage.EmojiID, &usage.Timestamp) + row.Scan(&usage.GuildID, &usage.ChannelID, &usage.MessageID, &usage.UserID, &usage.EmojiID, &usage.EmojiName, &usage.Timestamp) data = append(data, usage) }