diff --git a/bridge/matrix/matrix.go b/bridge/matrix/matrix.go index 4cc524ea..d659aaa2 100644 --- a/bridge/matrix/matrix.go +++ b/bridge/matrix/matrix.go @@ -205,6 +205,20 @@ func (b *Bmatrix) handleEvent(ev *matrix.Event) { info := ev.Content["info"].(map[string]interface{}) size := info["size"].(float64) name := ev.Content["body"].(string) + // check if we have an image uploaded without extension + if !strings.Contains(name, ".") { + if ev.Content["msgtype"].(string) == "m.image" { + if mtype, ok := ev.Content["mimetype"].(string); ok { + mext, _ := mime.ExtensionsByType(mtype) + if len(mext) > 0 { + name = name + mext[0] + } + } else { + // just a default .png extension if we don't have mime info + name = name + ".png" + } + } + } flog.Debugf("trying to download %#v with size %#v", name, size) if size <= float64(b.General.MediaDownloadSize) { data, err := helper.DownloadFile(url)