Files
tweetdistributor/discord/discordread.go
2025-03-20 14:40:52 +09:00

51 lines
950 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<- *discordgo.MessageCreate) {
d.read(tweetchannel)
}
func (d *discord) read(tweetchannel chan<- *discordgo.MessageCreate) {
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 && m.Author.ID != s.State.User.ID {
tweetchannel <- m
}
})
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)
}