--- a/database/guild.go Wed Jan 22 00:59:47 2020 -0600
+++ b/database/guild.go Wed Jan 22 01:12:11 2020 -0600
@@ -15,10 +15,12 @@
func LoadGuild(id string) (*Guild, error) {
data, err := db.Get([]byte("guild-" + id))
- log.Debugf("guild %s not found : %v", id, err)
log.Infof("guild %s not found, creating new", id)
@@ -32,9 +34,17 @@
guild.Ignore = []string{}
+func (g *Guild) CanAnnounce() bool { func (g *Guild) Save() error {
data, err := json.Marshal(g)
--- a/discord/presence.go Wed Jan 22 00:59:47 2020 -0600
+++ b/discord/presence.go Wed Jan 22 01:12:11 2020 -0600
@@ -16,19 +16,28 @@
+ if p.Game.Type != discordgo.GameTypeStreaming { guild, err := database.LoadGuild(p.GuildID)
log.Errorf("error loading guild: %v", err)
- log.Infof("server: %s username: %s is now streaming", guild.ID, p.Presence.User.Username)
+ if !guild.CanAnnounce() { + log.Infof("guild %s does not have an announcement channel set", guild.ID) + log.Infof("guild %s username %s is now streaming", guild.ID, p.Presence.User.Username) presence, _ := presence.GetPresence(p.Game.URL)
if lastID, ok := guild.History[presence.UserID]; ok {
if lastID == presence.StreamID {
- log.Infof("already sent presence to guild %s: %v", p.GuildID, presence)
+ log.Infof("already sent presence for %q to guild %s", presence.Username, p.GuildID) @@ -47,8 +56,6 @@
func presenceEmbed(presence presence.Presence) *discordgo.MessageEmbed {
- log.Debugf("embeding presence: %#v\n", presence)
embed := &discordgo.MessageEmbed{
Author: &discordgo.MessageEmbedAuthor{