commit 7e85d12d0f62e393dbb99b532298d2cf697adaf4
Author: Joseph Crowell <joseph.w.crowell@gmail.com>
Date: Sun Dec 14 15:39:37 2025 +0000
diff --git a/bridge/matrix/helpers.go b/bridge/matrix/helpers.go
index 2b5acdc..d847bd5 100644
--- a/bridge/matrix/helpers.go
+++ b/bridge/matrix/helpers.go
@@ -96 +97 @@ import (
"time"
mautrix "maunium.net/go/mautrix"
+ "maunium.net/go/mautrix/event"
"maunium.net/go/mautrix/id"
)
@@ -14816 +14916 @@ func handleError(err error) *httpError {
return &httpErr
}
-func (b *Bmatrix) containsAttachment(content map[string]interface{}) bool {
+func (b *Bmatrix) containsAttachment(content event.Content) bool {
// Skip empty messages
- if content["msgtype"] == nil {
+ if content.AsMessage().MsgType == "" {
return false
}
// Only allow image,video or file msgtypes
- if !(content["msgtype"].(string) == "m.image" ||
- content["msgtype"].(string) == "m.video" ||
- content["msgtype"].(string) == "m.file") {
+ if !(content.AsMessage().MsgType == event.MsgImage ||
+ content.AsMessage().MsgType == event.MsgVideo ||
+ content.AsMessage().MsgType == event.MsgFile) {
return false
}
diff --git a/bridge/matrix/matrix.go b/bridge/matrix/matrix.go
index dc3134d..df4f4c1 100644
--- a/bridge/matrix/matrix.go
+++ b/bridge/matrix/matrix.go
@@ -56513 +56513 @@ func (b *Bmatrix) handleReply(ev *event.Event, rmsg config.Message) bool {
}
func (b *Bmatrix) handleAttachment(ev *event.Event, rmsg config.Message) bool {
- if !b.containsAttachment(ev.Content.Raw) {
+ if !b.containsAttachment(ev.Content) {
return false
}
go func() {
// File download is processed in the background to avoid stalling
- err := b.handleDownloadFile(&rmsg, ev.Content.Raw)
+ err := b.handleDownloadFile(&rmsg, ev.Content)
if err != nil {
b.Log.Errorf("%#v", err)
return
@@ -7577 +7577 @@ func (b *Bmatrix) handleMessageEvent(ctx context.Context, ev *event.Event) {
}
// handleDownloadFile handles file download
-func (b *Bmatrix) handleDownloadFile(rmsg *config.Message, content map[string]interface{}) error {
+func (b *Bmatrix) handleDownloadFile(rmsg *config.Message, content event.Content) error {
var (
ok bool
url, name, msgtype, mtype string
@@ -7667 +7667 @@ func (b *Bmatrix) handleDownloadFile(rmsg *config.Message, content map[string]in
)
rmsg.Extra = make(map[string][]interface{})
- if url, ok = content["url"].(string); !ok {
+ if url, ok = content.Raw["url"].(string); !ok {
return fmt.Errorf("url isn't a %T", url)
}
// Matrix downloads now have to be authenticated with an access token
@@ -77416 +77416 @@ func (b *Bmatrix) handleDownloadFile(rmsg *config.Message, content map[string]in
// Also see: https://github.com/matterbridge-org/matterbridge/issues/36
url = strings.ReplaceAll(url, "mxc://", b.GetString("Server")+"/_matrix/client/v1/media/download/")
- if info, ok = content["info"].(map[string]interface{}); !ok {
+ if info, ok = content.Raw["info"].(map[string]interface{}); !ok {
return fmt.Errorf("info isn't a %T", info)
}
if size, ok = info["size"].(float64); !ok {
return fmt.Errorf("size isn't a %T", size)
}
- if name, ok = content["body"].(string); !ok {
+ if name, ok = content.Raw["body"].(string); !ok {
return fmt.Errorf("name isn't a %T", name)
}
- if msgtype, ok = content["msgtype"].(string); !ok {
+ if msgtype, ok = content.Raw["msgtype"].(string); !ok {
return fmt.Errorf("msgtype isn't a %T", msgtype)
}
if mtype, ok = info["mimetype"].(string); !ok {