From d0c4fe78eedc883049b684899cee87985ee36680 Mon Sep 17 00:00:00 2001 From: Wim Date: Tue, 19 Dec 2017 23:44:13 +0100 Subject: [PATCH] Allow specifying maximum download size of media using MediaDownloadSize (slack,telegram,matrix) --- bridge/config/config.go | 3 +++ bridge/matrix/matrix.go | 2 +- bridge/slack/slack.go | 2 +- bridge/telegram/telegram.go | 2 +- matterbridge.toml.sample | 9 +++++++++ 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/bridge/config/config.go b/bridge/config/config.go index 10f1d5f0..69531440 100644 --- a/bridge/config/config.go +++ b/bridge/config/config.go @@ -182,6 +182,9 @@ func NewConfig(cfgfile string) *Config { if fail { log.Fatalf("Fix your config. Please see changelog for more information") } + if cfg.General.MediaDownloadSize == 0 { + cfg.General.MediaDownloadSize = 1000000 + } return &cfg } diff --git a/bridge/matrix/matrix.go b/bridge/matrix/matrix.go index 03e493f7..7e326c22 100644 --- a/bridge/matrix/matrix.go +++ b/bridge/matrix/matrix.go @@ -175,7 +175,7 @@ func (b *Bmatrix) handlematrix() error { size := info["size"].(float64) name := ev.Content["body"].(string) flog.Debugf("trying to download %#v with size %#v", name, size) - if size <= 1000000 { + if size <= float64(b.General.MediaDownloadSize) { data, err := helper.DownloadFile(url) if err != nil { flog.Errorf("download %s failed %#v", url, err) diff --git a/bridge/slack/slack.go b/bridge/slack/slack.go index d6f73ffd..51fe698d 100644 --- a/bridge/slack/slack.go +++ b/bridge/slack/slack.go @@ -288,7 +288,7 @@ func (b *Bslack) handleSlack() { // if we have a file attached, download it (in memory) and put a pointer to it in msg.Extra if message.Raw.File != nil { // limit to 1MB for now - if message.Raw.File.Size <= 1000000 { + if message.Raw.File.Size <= b.General.MediaDownloadSize { comment := "" data, err := b.downloadFile(message.Raw.File.URLPrivateDownload) if err != nil { diff --git a/bridge/telegram/telegram.go b/bridge/telegram/telegram.go index 95492a88..2aabf3a8 100644 --- a/bridge/telegram/telegram.go +++ b/bridge/telegram/telegram.go @@ -299,7 +299,7 @@ func (b *Btelegram) handleDownload(file interface{}, msg *config.Message) { // if we have a file attached, download it (in memory) and put a pointer to it in msg.Extra // limit to 1MB for now flog.Debugf("trying to download %#v fileid %#v with size %#v", name, fileid, size) - if size <= 1000000 { + if size <= b.General.MediaDownloadSize { data, err := helper.DownloadFile(url) if err != nil { flog.Errorf("download %s failed %#v", url, err) diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample index d6fbe679..c261deca 100644 --- a/matterbridge.toml.sample +++ b/matterbridge.toml.sample @@ -1044,6 +1044,15 @@ MediaServerUpload="https://user:pass@yourserver.com/upload" #OPTIONAL (default empty) MediaServerDownload="https://youserver.com/download" +#MediaDownloadSize is the maximum size of attachments, videos, images +#matterbridge will download and upload this file to bridges that also support uploading files. +#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 +# +#Optional (default 1000000 (1 megabyte)) +MediaDownloadSize=1000000 ################################################################### #Gateway configuration