58 lines
1.6 KiB
Go
58 lines
1.6 KiB
Go
|
package bolt
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
//built-in Discord reactions
|
||
|
type Reaction string
|
||
|
|
||
|
const (
|
||
|
ReactionThumbsUp Reaction = ":+1:"
|
||
|
ReactionThumbsDown Reaction = ":-1:"
|
||
|
ReactionPointUp Reaction = ":point_up:"
|
||
|
ReactionPointDown Reaction = ":point_down:"
|
||
|
ReactionHotdog Reaction = ":hotdog:"
|
||
|
ReactionGiraffe Reaction = ":giraffe:"
|
||
|
ReactionWatermelon Reaction = ":watermelon:"
|
||
|
ReactionNoPedestrians Reaction = ":no_pedestrian:"
|
||
|
)
|
||
|
|
||
|
// information about attachments to messages
|
||
|
type MessageAttachment struct {
|
||
|
ID string
|
||
|
URL string
|
||
|
ProxyURL string
|
||
|
Filename string
|
||
|
ContentType string
|
||
|
Width int
|
||
|
Height int
|
||
|
Size int
|
||
|
DurationSecs float64
|
||
|
}
|
||
|
|
||
|
// represents a Discord message
|
||
|
type Message struct {
|
||
|
Author string //username of message author
|
||
|
ID string //discord ID of message author
|
||
|
msgID string //id string of message
|
||
|
Words []string //words from message split on whitespace
|
||
|
Content string //entire message content
|
||
|
Channel string //message channel
|
||
|
channelID string //id of channel message was sent in
|
||
|
Server string //message guild
|
||
|
serverID string //id of guild message was sent in
|
||
|
Attachments []MessageAttachment
|
||
|
sesh *bolt
|
||
|
}
|
||
|
|
||
|
// applies reaction to message
|
||
|
func (m *Message) React(emoji Reaction) error {
|
||
|
return m.sesh.MessageReactionAdd(m.channelID, m.msgID, fmt.Sprint(emoji))
|
||
|
}
|
||
|
|
||
|
// sends the value of res in response to the message
|
||
|
func (m *Message) Respond(res string) error {
|
||
|
rep := m.sesh.createReply(res, m.msgID, m.channelID, m.serverID)
|
||
|
_, err := m.sesh.ChannelMessageSendComplex(m.channelID, rep)
|
||
|
return err
|
||
|
}
|