Thumbnail

rani/matterbridge.git

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

commit 7360cfbc40a3e20fa946bfa7d5267a31b4cbcd53 Author: Wim <wim@42.be> Date: Fri Feb 02 20:23:55 2018 +0000 Download files and reupload to supported bridges (mattermost). Closes #357 diff --git a/bridge/mattermost/mattermost.go b/bridge/mattermost/mattermost.go index e84e61f..7f5b6f8 100644 --- a/bridge/mattermost/mattermost.go +++ b/bridge/mattermost/mattermost.go @@ -2878 +28724 @@ func (b *Bmattermost) handleMatterClient(mchan chan *MMMessage) {   m.Event = config.EVENT_MSG_DELETE   }   if len(message.Post.FileIds) > 0 { - for _, link := range b.mc.GetFileLinks(message.Post.FileIds) { - m.Text = m.Text + "\n" + link + for _, id := range message.Post.FileIds { + url, _ := b.mc.Client.GetFileLink(id) + finfo, resp := b.mc.Client.GetFileInfo(id) + if resp.Error != nil { + continue + } + flog.Debugf("trying to download %#v fileid %#v with size %#v", finfo.Name, finfo.Id, finfo.Size) + if int(finfo.Size) > b.General.MediaDownloadSize { + flog.Errorf("File %#v to large to download (%#v). MediaDownloadSize is %#v", finfo.Name, finfo.Size, b.General.MediaDownloadSize) + continue + } + data, resp := b.mc.Client.DownloadFile(id, true) + if resp.Error != nil { + flog.Errorf("download %s failed %#v", finfo.Name, resp.Error) + continue + } + flog.Debugf("download OK %#v %#v", finfo.Name, len(data)) + m.Extra["file"] = append(m.Extra["file"], config.FileInfo{Name: finfo.Name, Data: &data, URL: url, Comment: message.Text})   }   }   mchan <- m diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample index f3263d5..fea60c1 100644 --- a/matterbridge.toml.sample +++ b/matterbridge.toml.sample @@ -10537 +10537 @@ MediaServerDownload="https://youserver.com/download"  #eg downloading from slack to upload it to mattermost  #  #It will only download from bridges that don't have public links available, which are for the moment -#slack, telegram and matrix +#slack, telegram, matrix and mattermost  #  #Optional (default 1000000 (1 megabyte))  MediaDownloadSize=1000000