aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2023-06-17 08:11:33 -0400
committerXe Iaso <me@xeiaso.net>2023-06-17 08:11:33 -0400
commit1e4998c429d2cf40f947d8bd8ce29691ec102ff1 (patch)
tree9d9d2d7d9700a092f6d233efb3f0ada9f98b6bc6 /cmd
parent0b4d9abb80af44b026bd5f0e46cd7d303f059d73 (diff)
downloadx-1e4998c429d2cf40f947d8bd8ce29691ec102ff1.tar.xz
x-1e4998c429d2cf40f947d8bd8ce29691ec102ff1.zip
cmd/marabot: log user info for webhooks
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/marabot/main.go13
-rw-r--r--cmd/marabot/schema.sql8
2 files changed, 14 insertions, 7 deletions
diff --git a/cmd/marabot/main.go b/cmd/marabot/main.go
index 547194c..5a6ea2b 100644
--- a/cmd/marabot/main.go
+++ b/cmd/marabot/main.go
@@ -74,7 +74,6 @@ func main() {
}
dg.AddHandler(mr.DiscordMessageCreate)
- dg.AddHandler(mr.DiscordMessageDelete)
dg.AddHandler(mr.DiscordMessageEdit)
if err := dg.Open(); err != nil {
@@ -138,12 +137,6 @@ func main() {
}
}
-func (mr *MaraRevolt) DiscordMessageDelete(s *discordgo.Session, m *discordgo.MessageDelete) {
- if _, err := mr.db.Exec("DELETE FROM discord_messages WHERE id = ?", m.ID); err != nil {
- ln.Error(context.Background(), err)
- }
-}
-
func (mr *MaraRevolt) DiscordMessageEdit(s *discordgo.Session, m *discordgo.MessageUpdate) {
if _, err := mr.db.Exec("UPDATE discord_messages SET content = ?, edited_at = ? WHERE id = ?", m.Content, time.Now().Format(time.RFC3339), m.ID); err != nil {
ln.Error(context.Background(), err)
@@ -168,6 +161,12 @@ DO UPDATE SET username = EXCLUDED.username, avatar_url = EXCLUDED.avatar_url, ac
return err
}
+ if m.WebhookID != "" {
+ if _, err := mr.db.Exec("INSERT INTO discord_webhook_message_info (id, name, avatar_url) VALUES (?, ?, ?)", m.ID, m.Author.Username, m.Author.AvatarURL("")); err != nil {
+ return err
+ }
+ }
+
for _, att := range m.Attachments {
if _, err := mr.db.Exec(`INSERT INTO discord_attachments (id, message_id, url, proxy_url, filename, content_type, width, height, size) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, att.ID, m.ID, att.URL, att.ProxyURL, att.Filename, att.ContentType, att.Width, att.Height, att.Size); err != nil {
return err
diff --git a/cmd/marabot/schema.sql b/cmd/marabot/schema.sql
index b95c4c7..10a01fd 100644
--- a/cmd/marabot/schema.sql
+++ b/cmd/marabot/schema.sql
@@ -1,3 +1,5 @@
+PRAGMA journal_mode=WAL;
+
CREATE TABLE IF NOT EXISTS discord_roles (
id TEXT PRIMARY KEY,
guild_id TEXT NOT NULL,
@@ -25,6 +27,12 @@ CREATE TABLE IF NOT EXISTS discord_messages (
webhook_id TEXT
);
+CREATE TABLE IF NOT EXISTS discord_webhook_message_info (
+ id TEXT PRIMARY KEY,
+ name TEXT NOT NULL,
+ avatar_url TEXT NOT NULL
+);
+
CREATE TABLE IF NOT EXISTS discord_attachments (
id TEXT PRIMARY KEY,
message_id TEXT NOT NULL,