grim/wasdead

Fix the help message for the help command
draft
2019-04-08, Gary Kramlich
c06bc2e462ed
Fix the help message for the help command
package discord
import (
"errors"
"fmt"
"github.com/bwmarrin/discordgo"
"github.com/dustin/go-humanize"
log "github.com/sirupsen/logrus"
"bitbucket.org/TheToyz/nowdead/presence"
)
func (c *DiscordClient) presenceHandler(s *discordgo.Session, p *discordgo.PresenceUpdate) {
if p.Game == nil {
return
}
if p.Game.Type != discordgo.GameTypeStreaming {
return
}
guild, _ := c.client.Guild(p.GuildID)
log.Infof("server: %s username: %s is now streaming", guild.Name, p.Presence.User.Username)
presence, _ := presence.GetPresence(p.Game.URL)
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(guild string, presence presence.Presence) error {
channelID := c.db.GetChannel(guild)
if channelID == "" {
return errors.New("No channel set")
}
return c.sendPresenceChannel(channelID, 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 {
return &discordgo.MessageEmbed{
Image: &discordgo.MessageEmbedImage{
URL: presence.ProfileImageURL,
},
Author: &discordgo.MessageEmbedAuthor{
URL: presence.URL,
Name: fmt.Sprintf("%s is now live", presence.Username),
},
Thumbnail: &discordgo.MessageEmbedThumbnail{
URL: presence.ThumbnailURL,
},
Fields: []*discordgo.MessageEmbedField{
&discordgo.MessageEmbedField{
Name: "Title",
Value: presence.Title,
},
&discordgo.MessageEmbedField{
Name: "Viewers",
Value: humanize.Comma(presence.Viewers),
Inline: true,
},
&discordgo.MessageEmbedField{
Name: "Language",
Value: presence.Language,
Inline: true,
},
},
}
}