summaryrefslogtreecommitdiffstats
path: root/bridge/discord/discord.go
diff options
context:
space:
mode:
authorQais Patankar <qaisjp@gmail.com>2020-12-05 16:18:06 +0000
committerWim <wim@42.be>2020-12-13 23:19:48 +0100
commitaef2dcdfddd1a5b0a06e918cc878f3b52f7babf6 (patch)
treec9fd948f28ba0157dba5407858b29c1ab0ca7008 /bridge/discord/discord.go
parent0494119bf4e1fb53967aca9be3203d7cf2bbb9a5 (diff)
downloadmatterbridge-msglm-aef2dcdfddd1a5b0a06e918cc878f3b52f7babf6.tar.gz
matterbridge-msglm-aef2dcdfddd1a5b0a06e918cc878f3b52f7babf6.tar.bz2
matterbridge-msglm-aef2dcdfddd1a5b0a06e918cc878f3b52f7babf6.zip
Move webhook specific logic to its own file (discord)
Diffstat (limited to 'bridge/discord/discord.go')
-rw-r--r--bridge/discord/discord.go94
1 files changed, 0 insertions, 94 deletions
diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go
index 70fdaf90..1e6f3751 100644
--- a/bridge/discord/discord.go
+++ b/bridge/discord/discord.go
@@ -356,97 +356,3 @@ func (b *Bdiscord) handleUploadFile(msg *config.Message, channelID string) (stri
}
return "", nil
}
-
-// shouldMessageUseWebhooks checks if have a channel specific webhook, if we're not using auto webhooks
-func (b *Bdiscord) shouldMessageUseWebhooks(msg *config.Message) bool {
- if b.useAutoWebhooks {
- return true
- }
-
- b.channelsMutex.RLock()
- defer b.channelsMutex.RUnlock()
- if ci, ok := b.channelInfoMap[msg.Channel+b.Account]; ok {
- if ci.Options.WebhookURL != "" {
- return true
- }
- }
- return false
-}
-
-// webhookSend send one or more message via webhook, taking care of file
-// uploads (from slack, telegram or mattermost).
-// Returns messageID and error.
-func (b *Bdiscord) webhookSend(msg *config.Message, channelID string) (*discordgo.Message, error) {
- var (
- res *discordgo.Message
- err error
- )
-
- // If avatar is unset, mutate the message to include the local avatar (but only if settings say we should do this)
- if msg.Avatar == "" {
- msg.Avatar = b.maybeGetLocalAvatar(msg)
- }
-
- // WebhookParams can have either `Content` or `File`.
-
- // We can't send empty messages.
- if msg.Text != "" {
- res, err = b.transmitter.Send(
- channelID,
- &discordgo.WebhookParams{
- Content: msg.Text,
- Username: msg.Username,
- AvatarURL: msg.Avatar,
- },
- )
- if err != nil {
- b.Log.Errorf("Could not send text (%s) for message %#v: %s", msg.Text, msg, err)
- }
- }
-
- if msg.Extra != nil {
- for _, f := range msg.Extra["file"] {
- fi := f.(config.FileInfo)
- file := discordgo.File{
- Name: fi.Name,
- ContentType: "",
- Reader: bytes.NewReader(*fi.Data),
- }
- content := ""
- if msg.Text == "" {
- content = fi.Comment
- }
- _, e2 := b.transmitter.Send(
- channelID,
- &discordgo.WebhookParams{
- Username: msg.Username,
- AvatarURL: msg.Avatar,
- File: &file,
- Content: content,
- },
- )
- if e2 != nil {
- b.Log.Errorf("Could not send file %#v for message %#v: %s", file, msg, e2)
- }
- }
- }
- return res, err
-}
-
-// maybeGetLocalAvatar checks if UseLocalAvatar contains the message's
-// account or protocol, and if so, returns the Discord avatar (if exists)
-func (b *Bdiscord) maybeGetLocalAvatar(msg *config.Message) string {
- for _, val := range b.GetStringSlice("UseLocalAvatar") {
- if msg.Protocol != val && msg.Account != val {
- continue
- }
-
- member, err := b.getGuildMemberByNick(msg.Username)
- if err != nil {
- return ""
- }
-
- return member.User.AvatarURL("")
- }
- return ""
-}