| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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
- }
|