package providers import ( "git.wenlab.co/joe/beaconfire" "github.com/bwmarrin/discordgo" ) const ( BEACON_NAME_DISCORD = "discord" ) type OptionsDiscord struct { AuthToken string To []string } type discord struct { opt *OptionsDiscord } var _ beaconfire.BeaconFire = &discord{} func NewDiscord(opt *OptionsDiscord) *discord { return &discord{ opt: opt, } } func (c discord) Name() string { return BEACON_NAME_DISCORD } func (c *discord) Send(bp *beaconfire.BeaconMessage) error { if len(c.opt.To) <= 0 { return beaconfire.ErrNoReceiver } discord, err := discordgo.New("Bot " + c.opt.AuthToken) if err != nil { return err } if err = discord.Open(); err != nil { return err } defer discord.Close() for _, channel := range c.opt.To { if _, err := discord.ChannelMessageSend(channel, bp.Content); err != nil { return err } } return nil }