-
Notifications
You must be signed in to change notification settings - Fork 0
/
dsservice.go
42 lines (35 loc) · 1.08 KB
/
dsservice.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package discord
import (
"errors"
"net/url"
"github.com/bwmarrin/discordgo"
"github.com/nelsonleduc/calmanbot/service"
)
type DSService struct{}
func (d DSService) Post(post service.Post, groupMessage service.Message) {
discordMessage := groupMessage.(dsMessage)
if post.Type == service.PostTypeText {
discordMessage.session.ChannelMessageSend(discordMessage.ChannelID, post.Text)
} else if post.Type == service.PostTypeImage {
var footer *discordgo.MessageEmbedFooter
if postURL, err := url.Parse(post.Text); err == nil {
footer = &discordgo.MessageEmbedFooter{
Text: postURL.Host,
}
} else {
footer = nil
}
discordMessage.session.ChannelMessageSendEmbed(discordMessage.ChannelID, &discordgo.MessageEmbed{
Image: &discordgo.MessageEmbedImage{
URL: post.Text,
},
Footer: footer,
})
}
}
func (d DSService) ServiceMonitor() (service.Monitor, error) {
return nil, errors.New("Unsupported")
}
func (d DSService) MessageFromSessionAndMessage(session *discordgo.Session, message *discordgo.Message) service.Message {
return dsMessage{message, session, nil}
}