tgbridge: shrink oversize gifs sent as files, not just as animations
A .gif uploaded as a document never matches the animation branch, so it went to discord untouched and came back 413. First real test of the local api server hit exactly this: a 27.2 MB gif fetched fine, then bounced. Same ladder, same .gif out — that file lands at 5.73 MB. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
1 parent
78c755a7a2
commit
9d1f6778c4
1 file changed
+8
@@ -315,6 +315,14 @@ class TelegramForwarder:
|
|||||||
|
|
||||||
if document:
|
if document:
|
||||||
data, filename = await self._download(document.file_id)
|
data, filename = await self._download(document.file_id)
|
||||||
|
# a gif sent as a file never reaches the animation branch, so it
|
||||||
|
# went to discord at full size — same ladder, same .gif out
|
||||||
|
is_gif = (doc_mime == "image/gif"
|
||||||
|
or filename.lower().endswith(".gif"))
|
||||||
|
if is_gif and len(data) > media.MAX_CONVERTED_BYTES:
|
||||||
|
smaller = await media.to_gif(data, ".gif")
|
||||||
|
if smaller:
|
||||||
|
return [(filename, smaller)], ""
|
||||||
return [(filename, data)], ""
|
return [(filename, data)], ""
|
||||||
|
|
||||||
if message.voice:
|
if message.voice:
|
||||||
|
|||||||
Reference in new issue
Block a user