summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Wiederhake <BenWiederhake.GitHub@gmx.de>2020-09-26 21:28:24 +0200
committerGitHub <noreply@github.com>2020-09-26 21:28:24 +0200
commit06eb89b05bc571042b5274eb8adb535902639582 (patch)
tree307282c2105422dd6d026ca75c3827a639f0f2a7
parent91c58ec0271454105b5c66bcaa466c90464c7753 (diff)
downloadmatterbridge-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.go28
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)