Skip to content

Commit a16bbdd

Browse files
committed
feat(discord): hook up message and reaction logging to handlers
1 parent ef4269f commit a16bbdd

1 file changed

Lines changed: 34 additions & 1 deletion

File tree

discord/commands/handler.go

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55

66
"github.com/bwmarrin/discordgo"
77
"github.com/gaucho-racing/sentinel/discord/config"
8+
"github.com/gaucho-racing/sentinel/discord/model"
89
"github.com/gaucho-racing/sentinel/discord/pkg/logger"
910
"github.com/gaucho-racing/sentinel/discord/service"
1011
)
@@ -15,6 +16,7 @@ func InitializeBot() {
1516
return
1617
}
1718
service.Discord.AddHandler(OnDiscordMessage)
19+
service.Discord.AddHandler(OnDiscordReaction)
1820
service.Discord.Identify.Intents = discordgo.MakeIntent(discordgo.IntentsAll)
1921
err := service.Discord.Open()
2022
if err != nil {
@@ -25,9 +27,22 @@ func InitializeBot() {
2527
}
2628

2729
func OnDiscordMessage(s *discordgo.Session, m *discordgo.MessageCreate) {
28-
if m.Author.ID == s.State.User.ID {
30+
if m.Author.Bot {
2931
return
3032
}
33+
34+
logger.SugarLogger.Infof("Message from %s in %s: %s", m.Author.ID, m.ChannelID, m.Content)
35+
36+
_, err := service.CreateDiscordMessage(model.DiscordMessage{
37+
DiscordUserID: m.Author.ID,
38+
ChannelID: m.ChannelID,
39+
MessageID: m.ID,
40+
Content: m.Content,
41+
})
42+
if err != nil {
43+
logger.SugarLogger.Errorf("Failed to persist discord message: %v", err)
44+
}
45+
3146
if !strings.HasPrefix(m.Content, config.DiscordPrefix) {
3247
return
3348
}
@@ -44,3 +59,21 @@ func OnDiscordMessage(s *discordgo.Session, m *discordgo.MessageCreate) {
4459
logger.SugarLogger.Infof("Unknown command: %s", command)
4560
}
4661
}
62+
63+
func OnDiscordReaction(s *discordgo.Session, r *discordgo.MessageReactionAdd) {
64+
if r.UserID == s.State.User.ID {
65+
return
66+
}
67+
68+
logger.SugarLogger.Infof("Reaction from %s in %s: %s", r.UserID, r.ChannelID, r.Emoji.Name)
69+
70+
_, err := service.CreateDiscordReaction(model.DiscordReaction{
71+
DiscordUserID: r.UserID,
72+
ChannelID: r.ChannelID,
73+
MessageID: r.MessageID,
74+
Emoji: r.Emoji.Name,
75+
})
76+
if err != nil {
77+
logger.SugarLogger.Errorf("Failed to persist discord reaction: %v", err)
78+
}
79+
}

0 commit comments

Comments
 (0)