Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit 1f18d5e70fb33f1024f04d832706e2d5b4db3dcf Author: Wim <wim@42.be> Date: Fri Nov 03 00:05:10 2017 +0000 Add support to upload files to discord, from bridges with private urls like slack/mattermost/telegram. (discord) diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go index d8320c7..c82844a 100644 --- a/bridge/discord/discord.go +++ b/bridge/discord/discord.go @@ -16 +17 @@  package bdiscord    import ( + "bytes"   "github.com/42wim/matterbridge/bridge/config"   log "github.com/Sirupsen/logrus"   "github.com/bwmarrin/discordgo" @@ -1416 +14223 @@ 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