capabilities: mark lottie and webm as allowed sticker formats

This commit is contained in:
Tulir Asokan
2026-04-28 16:09:13 +03:00
parent e6243d8935
commit d2a06ebbbe
3 changed files with 36 additions and 4 deletions
+24
View File
@@ -110,6 +110,30 @@ func (c *AnimatedStickerConfig) convertWebm(ctx context.Context, src *os.File) *
}
}
func CompressGZip(src *os.File) (replPath string, err error) {
tempFile, err := os.CreateTemp("", "telegram-sticker-gzip-*.tgs")
if err != nil {
return "", fmt.Errorf("failed to create temp file: %w", err)
}
writer := gzip.NewWriter(tempFile)
defer func() {
_ = tempFile.Close()
_ = writer.Close()
if replPath == "" {
_ = os.Remove(tempFile.Name())
}
}()
_, err = io.Copy(writer, src)
if err != nil {
return "", fmt.Errorf("failed to compress lottie gzip: %w", err)
}
err = writer.Close()
if err != nil {
return "", fmt.Errorf("failed to close gzip writer: %w", err)
}
return tempFile.Name(), nil
}
func extractGZip(src *os.File) (*ConvertedSticker, error) {
reader, err := gzip.NewReader(src)
if err != nil {