From 0ebb235e61149474040c986f7a801c7e8f9adcf3 Mon Sep 17 00:00:00 2001 From: Marco Alvarez Date: Tue, 2 Jan 2024 10:53:19 +0100 Subject: [PATCH] only add url field on sticker events (properly) --- portal.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/portal.go b/portal.go index bee936f..d6d5322 100644 --- a/portal.go +++ b/portal.go @@ -3434,12 +3434,6 @@ func (portal *Portal) uploadMedia(intent *appservice.IntentAPI, data []byte, con if file != nil { file.URL = mxc.CUString() content.File = file - // Sticker events require the URL field to be present https://spec.matrix.org/v1.9/client-server-api/#events-16 - // This seems to affect only clients based on the Rust SDK on encrypted channels (like Element X) - isSticker := string(content.MsgType) == event.EventSticker.Type - if isSticker { - content.URL = mxc.CUString() - } } else { content.URL = mxc.CUString() } @@ -3506,6 +3500,13 @@ func (portal *Portal) convertMediaMessage(intent *appservice.IntentAPI, source * return portal.makeMediaBridgeFailureMessage(info, fmt.Errorf("failed to upload media: %w", err), converted, nil, "") } } + + // Sticker events require the URL field to be present https://spec.matrix.org/v1.9/client-server-api/#events-16 + // This seems to affect only clients based on the Rust SDK on encrypted channels (like Element X) + if typeName == "sticker" && converted.Content.File != nil { + converted.Content.URL = converted.Content.File.URL + } + return converted }