grim/wasdead

Clean up the sendEmbed* methods
draft
2019-05-11, Gary Kramlich
25c58bcbc247
Parents 6efee9941570
Children 156164f35081
Clean up the sendEmbed* methods
--- a/discord/commands.go Sat May 11 21:54:24 2019 -0500
+++ b/discord/commands.go Sat May 11 22:39:35 2019 -0500
@@ -97,7 +97,7 @@
},
}
- g.client.sendChannelEmbed(g.msg.ChannelID, embed)
+ g.client.sendEmbedChannel(g.msg.ChannelID, embed)
return nil
}
@@ -137,7 +137,7 @@
return err
}
- return g.client.sendPresenceChannel(g.msg.ChannelID, presence)
+ return g.client.sendEmbedChannel(g.msg.ChannelID, presenceEmbed(presence))
}
type UptimeCmd struct{}
--- a/discord/discord.go Sat May 11 21:54:24 2019 -0500
+++ b/discord/discord.go Sat May 11 22:39:35 2019 -0500
@@ -1,6 +1,7 @@
package discord
import (
+ "errors"
"strings"
"time"
@@ -18,6 +19,10 @@
mentionString string
}
+var (
+ ErrAnnouncementChannelNotSet = errors.New("no announcement channel set")
+)
+
func New(token string) (*DiscordClient, error) {
client, err := discordgo.New("Bot " + strings.TrimSpace(token))
if err != nil {
@@ -57,6 +62,10 @@
return err
}
+ if guild.Channel == "" {
+ return ErrAnnouncementChannelNotSet
+ }
+
return c.sendChannel(guild.Channel, message)
}
@@ -67,7 +76,20 @@
return err
}
-func (c *DiscordClient) sendChannelEmbed(channelID string, embed *discordgo.MessageEmbed) error {
+func (c *DiscordClient) sendEmbed(guildId string, embed *discordgo.MessageEmbed) error {
+ guild, err := database.LoadGuild(guildId)
+ if err != nil {
+ return err
+ }
+
+ if guild.Channel == "" {
+ return ErrAnnouncementChannelNotSet
+ }
+
+ return c.sendEmbedChannel(guild.Channel, embed)
+}
+
+func (c *DiscordClient) sendEmbedChannel(channelID string, embed *discordgo.MessageEmbed) error {
_, err := c.client.ChannelMessageSendEmbed(
channelID,
embed,
--- a/discord/presence.go Sat May 11 21:54:24 2019 -0500
+++ b/discord/presence.go Sat May 11 22:39:35 2019 -0500
@@ -1,7 +1,6 @@
package discord
import (
- "errors"
"fmt"
"github.com/bwmarrin/discordgo"
@@ -38,41 +37,18 @@
}
}
+ if err := c.sendEmbed(p.GuildID, presenceEmbed(presence)); err != nil {
+ log.Warnf("failed to send presence to guild %s: %v, %v", p.GuildID, err, presence)
+ return
+ }
+
+ // only save after we've successful send the message
guild.History[presence.UserID] = presence.StreamID
err = guild.Save()
if err != nil {
log.Warnf("failed to save stream update for %s: %v", presence.UserID, err)
}
- if err := c.sendPresence(p.GuildID, presence); err != nil {
- log.Warnf("failed to send presence to guild %s: %v, %v", p.GuildID, err, presence)
- }
-}
-
-func (c *DiscordClient) sendPresence(guildID string, presence presence.Presence) error {
- guild, err := database.LoadGuild(guildID)
- if err != nil {
- return err
- }
-
- if guild.ID == "" {
- return errors.New("Guild does not exist")
- }
-
- if guild.Channel == "" {
- return errors.New("No channel set")
- }
-
- return c.sendPresenceChannel(guild.Channel, presence)
-}
-
-func (c *DiscordClient) sendPresenceChannel(channelID string, presence presence.Presence) error {
- _, err := c.client.ChannelMessageSendEmbed(
- channelID,
- presenceEmbed(presence),
- )
-
- return err
}
func presenceEmbed(presence presence.Presence) *discordgo.MessageEmbed {