From 48d91fdf76b18198afe18f8d4ab4c802008767e5 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 24 Apr 2025 15:55:35 +0300 Subject: [PATCH] media/sticker: fix lottie mime type It's always gunzipped, so should never send the application/x-tgsticker mime. Also, video/lottie+json was recently registered with IANA, so use that instead of the old image/lottie+json: --- pkg/connector/capabilities.go | 2 +- pkg/connector/media/sticker.go | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/connector/capabilities.go b/pkg/connector/capabilities.go index ae0011cd..f024e06e 100644 --- a/pkg/connector/capabilities.go +++ b/pkg/connector/capabilities.go @@ -116,7 +116,7 @@ var fileCaps = event.FileFeatureMap{ MimeTypes: map[string]event.CapabilitySupportLevel{ "image/webp": event.CapLevelFullySupported, // TODO - //"image/lottie+json": event.CapLevelFullySupported, + //"video/lottie+json": event.CapLevelFullySupported, //"video/webm": event.CapLevelFullySupported, }, }, diff --git a/pkg/connector/media/sticker.go b/pkg/connector/media/sticker.go index 31dabf0b..b450f069 100644 --- a/pkg/connector/media/sticker.go +++ b/pkg/connector/media/sticker.go @@ -54,17 +54,17 @@ type ConvertedSticker struct { func (c AnimatedStickerConfig) convert(ctx context.Context, data []byte) ConvertedSticker { input := bytes.NewBuffer(data) if c.Target == "disable" { - return ConvertedSticker{DataWriter: input, MIMEType: "application/x-tgsticker"} + return ConvertedSticker{DataWriter: input, MIMEType: "video/lottie+json"} } log := zerolog.Ctx(ctx).With().Str("animated_sticker_target", c.Target).Logger() if !lottie.Supported() { log.Warn().Msg("lottie not supported, cannot convert animated stickers") - return ConvertedSticker{DataWriter: input, MIMEType: "application/x-tgsticker"} + return ConvertedSticker{DataWriter: input, MIMEType: "video/lottie+json"} } else if (c.Target == "webp" || c.Target == "webm") && !ffmpeg.Supported() { log.Warn().Msg("ffmpeg not supported, cannot convert animated stickers") - return ConvertedSticker{DataWriter: input, MIMEType: "application/x-tgsticker"} + return ConvertedSticker{DataWriter: input, MIMEType: "video/lottie+json"} } dataWriter := new(bytes.Buffer) @@ -102,7 +102,7 @@ func (c AnimatedStickerConfig) convert(ctx context.Context, data []byte) Convert Msg("failed to convert animated sticker to target format") // Fallback to original data - return ConvertedSticker{DataWriter: input, MIMEType: "application/x-tgsticker"} + return ConvertedSticker{DataWriter: input, MIMEType: "video/lottie+json"} } return ConvertedSticker{