51 lines
888 B
Go
51 lines
888 B
Go
package discord
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/bwmarrin/discordgo"
|
|
)
|
|
|
|
type discord struct {
|
|
Token string
|
|
ChannelID string
|
|
dgsession *discordgo.Session
|
|
}
|
|
|
|
func Discord(token string, channelId string) *discord {
|
|
return &discord{
|
|
Token: token,
|
|
ChannelID: channelId,
|
|
}
|
|
}
|
|
|
|
func (d *discord) BeginRead(tweetchannel chan<- string) {
|
|
d.read(tweetchannel)
|
|
}
|
|
|
|
func (d *discord) read(tweetchannel chan<- string) {
|
|
dgsession, err := discordgo.New("Bot " + d.Token)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
dgsession.AddHandler(func(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|
if m.ChannelID == d.ChannelID {
|
|
tweetchannel <- m.Content
|
|
}
|
|
})
|
|
d.dgsession = dgsession
|
|
|
|
errOpen := dgsession.Open()
|
|
if errOpen != nil {
|
|
fmt.Println(errOpen)
|
|
}
|
|
}
|
|
func Read() string {
|
|
return "discord"
|
|
}
|
|
|
|
func (d *discord) Write(str string) {
|
|
d.dgsession.ChannelMessageSend(d.ChannelID, str)
|
|
}
|