summaryrefslogtreecommitdiffstats
path: root/bridge/discord/discord.go
diff options
context:
space:
mode:
Diffstat (limited to 'bridge/discord/discord.go')
-rw-r--r--bridge/discord/discord.go37
1 files changed, 19 insertions, 18 deletions
diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go
index cfc6a81d..ca4e4185 100644
--- a/bridge/discord/discord.go
+++ b/bridge/discord/discord.go
@@ -23,32 +23,33 @@ type Bdiscord struct {
webhookToken string
channelInfoMap map[string]*config.ChannelInfo
sync.RWMutex
- *config.BridgeConfig
+ *bridge.Config
}
-func New(cfg *config.BridgeConfig) bridge.Bridger {
- b := &Bdiscord{BridgeConfig: cfg}
+func New(cfg *bridge.Config) bridge.Bridger {
+ b := &Bdiscord{Config: cfg}
b.userMemberMap = make(map[string]*discordgo.Member)
b.channelInfoMap = make(map[string]*config.ChannelInfo)
- if b.Config.WebhookURL != "" {
+ if b.GetString("WebhookURL") != "" {
b.Log.Debug("Configuring Discord Incoming Webhook")
- b.webhookID, b.webhookToken = b.splitURL(b.Config.WebhookURL)
+ b.webhookID, b.webhookToken = b.splitURL(b.GetString("WebhookURL"))
}
return b
}
func (b *Bdiscord) Connect() error {
var err error
+ var token string
b.Log.Info("Connecting")
- if b.Config.WebhookURL == "" {
+ if b.GetString("WebhookURL") == "" {
b.Log.Info("Connecting using token")
} else {
b.Log.Info("Connecting using webhookurl (for posting) and token")
}
- if !strings.HasPrefix(b.Config.Token, "Bot ") {
- b.Config.Token = "Bot " + b.Config.Token
+ if !strings.HasPrefix(b.GetString("Token"), "Bot ") {
+ token = "Bot " + b.GetString("Token")
}
- b.c, err = discordgo.New(b.Config.Token)
+ b.c, err = discordgo.New(token)
if err != nil {
return err
}
@@ -71,7 +72,7 @@ func (b *Bdiscord) Connect() error {
}
b.Nick = userinfo.Username
for _, guild := range guilds {
- if guild.Name == b.Config.Server {
+ if guild.Name == b.GetString("Server") {
b.Channels, err = b.c.GuildChannels(guild.ID)
b.guildID = guild.ID
if err != nil {
@@ -83,7 +84,7 @@ func (b *Bdiscord) Connect() error {
}
func (b *Bdiscord) Disconnect() error {
- return nil
+ return b.c.Close()
}
func (b *Bdiscord) JoinChannel(channel config.ChannelInfo) error {
@@ -186,13 +187,13 @@ func (b *Bdiscord) messageDelete(s *discordgo.Session, m *discordgo.MessageDelet
}
func (b *Bdiscord) messageUpdate(s *discordgo.Session, m *discordgo.MessageUpdate) {
- if b.Config.EditDisable {
+ if b.GetBool("EditDisable") {
return
}
// only when message is actually edited
if m.Message.EditedTimestamp != "" {
b.Log.Debugf("Sending edit message")
- m.Content = m.Content + b.Config.EditSuffix
+ m.Content = m.Content + b.GetString("EditSuffix")
b.messageCreate(s, (*discordgo.MessageCreate)(m))
}
}
@@ -236,14 +237,14 @@ func (b *Bdiscord) messageCreate(s *discordgo.Session, m *discordgo.MessageCreat
}
// set username
- if !b.Config.UseUserName {
+ if !b.GetBool("UseUserName") {
rmsg.Username = b.getNick(m.Author)
} else {
rmsg.Username = m.Author.Username
}
// if we have embedded content add it to text
- if b.Config.ShowEmbeds && m.Message.Embeds != nil {
+ if b.GetBool("ShowEmbeds") && m.Message.Embeds != nil {
for _, embed := range m.Message.Embeds {
rmsg.Text = rmsg.Text + "embed: " + embed.Title + " - " + embed.Description + " - " + embed.URL + "\n"
}
@@ -367,7 +368,7 @@ func (b *Bdiscord) splitURL(url string) (string, string) {
// useWebhook returns true if we have a webhook defined somewhere
func (b *Bdiscord) useWebhook() bool {
- if b.Config.WebhookURL != "" {
+ if b.GetString("WebhookURL") != "" {
return true
}
for _, channel := range b.channelInfoMap {
@@ -380,8 +381,8 @@ func (b *Bdiscord) useWebhook() bool {
// isWebhookID returns true if the specified id is used in a defined webhook
func (b *Bdiscord) isWebhookID(id string) bool {
- if b.Config.WebhookURL != "" {
- wID, _ := b.splitURL(b.Config.WebhookURL)
+ if b.GetString("WebhookURL") != "" {
+ wID, _ := b.splitURL(b.GetString("WebhookURL"))
if wID == id {
return true
}