go-cdn/discord/handleMsg.go

75 lines
1.5 KiB
Go
Raw Normal View History

2021-07-08 21:30:32 +00:00
package discord
import (
"time"
"github.com/andersfylling/disgord"
"gitlab.com/gaming0skar123/go/cdn/common"
"gitlab.com/gaming0skar123/go/cdn/config"
"gitlab.com/gaming0skar123/go/cdn/database"
"gitlab.com/gaming0skar123/go/cdn/imgur"
)
func handleMsg(s disgord.Session, data *disgord.MessageCreate) {
m := data.Message
findVaue := &database.Channel{
ID: m.ChannelID.String(),
GuildID: m.GuildID.String(),
}
if !database.FindChannel(findVaue) {
return
}
err := s.Channel(m.ChannelID).TriggerTypingIndicator()
common.CheckErr(err, "TriggerTypingIndicator()")
avatarUrl, _ := m.Author.AvatarURL(64, true)
var url string
if len(m.Attachments) > 0 {
url = m.Attachments[0].URL
} else {
url = m.Content
}
i, err := imgur.UploadFromURL(url)
if common.CheckErr(err, "UploadFromURL("+url+")") {
mBot, err := m.Reply(ctx, s, disgord.Embed{
Title: "Error",
Description: err.Error(),
Timestamp: m.Timestamp,
Color: config.Embed_Color,
Footer: &disgord.EmbedFooter{
Text: m.Author.Tag(),
IconURL: avatarUrl,
},
})
if !common.CheckErr(err, "send message") {
deleteMsg(s, mBot, 5*time.Second)
}
deleteMsg(s, m, 3*time.Second)
return
}
_, err = m.Reply(ctx, s, disgord.Embed{
Title: i.Link,
Timestamp: m.Timestamp,
Color: config.Embed_Color,
Footer: &disgord.EmbedFooter{
Text: m.Author.Tag(),
IconURL: avatarUrl,
},
Image: &disgord.EmbedImage{
URL: i.Link,
},
})
common.CheckErr(err, "send message")
deleteMsg(s, m, 2*time.Second)
}