diff options
author | Ben Wiederhake <BenWiederhake.GitHub@gmx.de> | 2020-09-26 21:28:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-26 21:28:24 +0200 |
commit | 06eb89b05bc571042b5274eb8adb535902639582 (patch) | |
tree | 307282c2105422dd6d026ca75c3827a639f0f2a7 | |
parent | 91c58ec0271454105b5c66bcaa466c90464c7753 (diff) | |
download | matterbridge-msglm-06eb89b05bc571042b5274eb8adb535902639582.tar.gz matterbridge-msglm-06eb89b05bc571042b5274eb8adb535902639582.tar.bz2 matterbridge-msglm-06eb89b05bc571042b5274eb8adb535902639582.zip |
Matrix: Permit uploading files of other mimetypes (#1237)
This includes at least c-source-files, cpp-source-files,
markdown-files, Rust-files, and plaintext files.
We already allow uploading arbitrary executables. (And javascript-files,
coincidentally.) Not permitting these other text files would be highly unexpected.
-rw-r--r-- | bridge/matrix/matrix.go | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/bridge/matrix/matrix.go b/bridge/matrix/matrix.go index ce032542..c3605b61 100644 --- a/bridge/matrix/matrix.go +++ b/bridge/matrix/matrix.go @@ -333,10 +333,6 @@ func (b *Bmatrix) handleUploadFile(msg *config.Message, channel string, fi *conf content := bytes.NewReader(*fi.Data) sp := strings.Split(fi.Name, ".") mtype := mime.TypeByExtension("." + sp[len(sp)-1]) - if !(strings.Contains(mtype, "image") || strings.Contains(mtype, "video") || - strings.Contains(mtype, "application") || strings.Contains(mtype, "audio")) { - return - } if fi.Comment != "" { _, err := b.mc.SendText(channel, msg.Username+fi.Comment) if err != nil { @@ -369,33 +365,33 @@ func (b *Bmatrix) handleUploadFile(msg *config.Message, channel string, fi *conf if err != nil { b.Log.Errorf("sendImage failed: %#v", err) } - case strings.Contains(mtype, "application"): - b.Log.Debugf("sendFile %s", res.ContentURI) - _, err = b.mc.SendMessageEvent(channel, "m.room.message", matrix.FileMessage{ - MsgType: "m.file", + case strings.Contains(mtype, "audio"): + b.Log.Debugf("sendAudio %s", res.ContentURI) + _, err = b.mc.SendMessageEvent(channel, "m.room.message", matrix.AudioMessage{ + MsgType: "m.audio", Body: fi.Name, URL: res.ContentURI, - Info: matrix.FileInfo{ + Info: matrix.AudioInfo{ Mimetype: mtype, Size: uint(len(*fi.Data)), }, }) if err != nil { - b.Log.Errorf("sendFile failed: %#v", err) + b.Log.Errorf("sendAudio failed: %#v", err) } - case strings.Contains(mtype, "audio"): - b.Log.Debugf("sendAudio %s", res.ContentURI) - _, err = b.mc.SendMessageEvent(channel, "m.room.message", matrix.AudioMessage{ - MsgType: "m.audio", + default: + b.Log.Debugf("sendFile %s", res.ContentURI) + _, err = b.mc.SendMessageEvent(channel, "m.room.message", matrix.FileMessage{ + MsgType: "m.file", Body: fi.Name, URL: res.ContentURI, - Info: matrix.AudioInfo{ + Info: matrix.FileInfo{ Mimetype: mtype, Size: uint(len(*fi.Data)), }, }) if err != nil { - b.Log.Errorf("sendAudio failed: %#v", err) + b.Log.Errorf("sendFile failed: %#v", err) } } b.Log.Debugf("result: %#v", res) |