From 9a9414db34134324930a2aae2819d0c3ba9daa4e Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 10 Feb 2022 19:26:16 +0200 Subject: [PATCH] Add some extra metadata for gifs --- portal.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/portal.go b/portal.go index ab2b730..9999b83 100644 --- a/portal.go +++ b/portal.go @@ -1898,6 +1898,7 @@ func (portal *Portal) convertMediaMessageContent(intent *appservice.IntentAPI, m Size: int(msg.GetFileLength()), }, } + extraContent := map[string]interface{}{} messageWithDimensions, ok := msg.(MediaMessageWithDimensions) if ok { @@ -1925,8 +1926,20 @@ func (portal *Portal) convertMediaMessageContent(intent *appservice.IntentAPI, m content.Info.Duration = int(msgWithDuration.GetSeconds()) * 1000 } + videoMessage, ok := msg.(*waProto.VideoMessage) + var isGIF bool + if ok && videoMessage.GetGifPlayback() { + isGIF = true + extraContent["info"] = map[string]interface{}{ + "fi.mau.loop": true, + "fi.mau.autoplay": true, + "fi.mau.hide_controls": true, + "fi.mau.no_audio": true, + } + } + messageWithThumbnail, ok := msg.(MediaMessageWithThumbnail) - if ok && messageWithThumbnail.GetJpegThumbnail() != nil && portal.bridge.Config.Bridge.WhatsappThumbnail { + if ok && messageWithThumbnail.GetJpegThumbnail() != nil && (portal.bridge.Config.Bridge.WhatsappThumbnail || isGIF) { thumbnailData := messageWithThumbnail.GetJpegThumbnail() thumbnailMime := http.DetectContentType(thumbnailData) thumbnailCfg, _, _ := image.DecodeConfig(bytes.NewReader(thumbnailData)) @@ -1971,7 +1984,6 @@ func (portal *Portal) convertMediaMessageContent(intent *appservice.IntentAPI, m } audioMessage, ok := msg.(*waProto.AudioMessage) - extraContent := map[string]interface{}{} if ok { var waveform []int if audioMessage.Waveform != nil {