From dd64d2c559a3b0adafb98abb91bfb82cb410a486 Mon Sep 17 00:00:00 2001 From: Sumner Evans Date: Mon, 18 Nov 2024 08:54:14 -0700 Subject: [PATCH] connector/matrix: force .jpg suffix on image filenames without extensions Signed-off-by: Sumner Evans --- pkg/connector/matrix.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkg/connector/matrix.go b/pkg/connector/matrix.go index 7142de73..471549a5 100644 --- a/pkg/connector/matrix.go +++ b/pkg/connector/matrix.go @@ -33,12 +33,22 @@ import ( "go.mau.fi/mautrix-telegram/pkg/connector/waveform" ) -func getMediaFilename(content *event.MessageEventContent) string { +func getMediaFilename(content *event.MessageEventContent) (filename string) { if content.FileName != "" { - return content.FileName + filename = content.FileName } else { - return content.Body + filename = content.Body } + if filename == "" { + return "image.jpg" // Assume it's a JPEG image + } + if content.MsgType == event.MsgImage && (!strings.HasSuffix(filename, ".jpg") && !strings.HasSuffix(filename, ".jpeg") && !strings.HasSuffix(filename, ".png")) { + if content.Info != nil && content.Info.MimeType != "" { + return filename + strings.TrimPrefix(content.Info.MimeType, "image/") + } + return filename + ".jpg" // Assume it's a JPEG + } + return filename } func (t *TelegramClient) transferMediaToTelegram(ctx context.Context, content *event.MessageEventContent, sticker bool) (tg.InputMediaClass, error) {