diff options
author | Wim <wim@42.be> | 2017-11-03 00:05:10 +0100 |
---|---|---|
committer | Wim <wim@42.be> | 2017-11-03 00:05:10 +0100 |
commit | d1e8ff814b616d38ad778f8b85e38caf53c33552 (patch) | |
tree | f363ac38f4552bc01a791c24aae6448df22ac8b8 | |
parent | 4f8ae761a27302c7575ac0ef7ca1c45fe329e9a7 (diff) | |
download | matterbridge-msglm-d1e8ff814b616d38ad778f8b85e38caf53c33552.tar.gz matterbridge-msglm-d1e8ff814b616d38ad778f8b85e38caf53c33552.tar.bz2 matterbridge-msglm-d1e8ff814b616d38ad778f8b85e38caf53c33552.zip |
Add support to upload files to discord, from bridges with private urls like slack/mattermost/telegram. (discord)
-rw-r--r-- | bridge/discord/discord.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go index d8320c76..c82844a4 100644 --- a/bridge/discord/discord.go +++ b/bridge/discord/discord.go @@ -1,6 +1,7 @@ package bdiscord import ( + "bytes" "github.com/42wim/matterbridge/bridge/config" log "github.com/Sirupsen/logrus" "github.com/bwmarrin/discordgo" @@ -141,6 +142,23 @@ func (b *bdiscord) Send(msg config.Message) (string, error) { _, err := b.c.ChannelMessageEdit(channelID, msg.ID, msg.Username+msg.Text) return msg.ID, err } + + if msg.Extra != nil { + // check if we have files to upload (from slack, telegram or mattermost) + if len(msg.Extra["file"]) > 0 { + for _, f := range msg.Extra["file"] { + fi := f.(config.FileInfo) + files := []*discordgo.File{} + files = append(files, &discordgo.File{fi.Name, "", bytes.NewReader(*fi.Data)}) + res, err := b.c.ChannelMessageSendComplex(channelID, &discordgo.MessageSend{Content: msg.Text, Files: files}) + if err != nil { + flog.Debugf("ERROR channelMessageSendComplex: %#v", err) + return "", err + } + return res.ID, err + } + } + } res, err := b.c.ChannelMessageSend(channelID, msg.Username+msg.Text) if err != nil { return "", err |