1
0
mirror of https://github.com/mgerb/go-discord-bot synced 2026-01-09 16:42:48 +00:00
Files
go-discord-bot/server/bothandlers/logger.go

69 lines
1.7 KiB
Go

package bothandlers
import (
"strings"
"github.com/bwmarrin/discordgo"
"github.com/mgerb/go-discord-bot/server/db"
"github.com/mgerb/go-discord-bot/server/webserver/model"
)
// LoggerHandler -
func LoggerHandler(s *discordgo.Session, m *discordgo.MessageCreate) {
// upsert user
user := getUser(m.Author)
model.UserSave(db.GetConn(), user)
// create and save message
timestamp, _ := m.Message.Timestamp.Parse()
editedTimestamp, _ := m.Message.EditedTimestamp.Parse()
attachments := getAttachments(m.Message.Attachments)
message := &model.Message{
ID: m.Message.ID,
ChannelID: m.Message.ChannelID,
Content: m.Message.Content,
Timestamp: timestamp,
EditedTimestamp: editedTimestamp,
MentionRoles: strings.Join(m.Message.MentionRoles, ","),
TTS: m.Message.TTS,
MentionEveryone: m.Message.MentionEveryone,
UserID: m.Author.ID,
Attachments: attachments,
}
model.MessageSave(db.GetConn(), message)
}
func getAttachments(att []*discordgo.MessageAttachment) []model.Attachment {
var attachments []model.Attachment
for _, a := range att {
newAttachment := model.Attachment{
MessageID: a.ID,
Filename: a.Filename,
Height: a.Height,
ProxyURL: a.ProxyURL,
Size: a.Size,
URL: a.URL,
Width: a.Width,
}
attachments = append(attachments, newAttachment)
}
return attachments
}
func getUser(u *discordgo.User) *model.User {
return &model.User{
ID: u.ID,
Email: u.Email,
Username: u.Username,
Avatar: u.Avatar,
Discriminator: u.Discriminator,
Token: u.Token,
Verified: u.Verified,
MFAEnabled: u.MFAEnabled,
Bot: u.Bot,
}
}