Thumbnail

rani/matterbridge.git

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

commit b9360925ba45cacdcb5671ba3bb975360dbaf59f Author: Ben Wiederhake <BenWiederhake.GitHub@gmx.de> Date: Sat Sep 26 21:28:24 2020 +0000 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. diff --git a/bridge/matrix/matrix.go b/bridge/matrix/matrix.go index ce03254..c3605b6 100644 --- a/bridge/matrix/matrix.go +++ b/bridge/matrix/matrix.go @@ -33310 +3336 @@ 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 { @@ -36933 +36533 @@ 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)