Compare commits

...
2 Commits
Author SHA1 Message Date
YoursFunny 6d06e28598 fix gif media 2024-03-23 15:01:17 +08:00
YoursFunny 4083b09093 add gif support 2024-03-23 14:54:22 +08:00
+24 -5
View File
@@ -4,8 +4,10 @@ from aiohttp import ClientSession
from telegram import ( from telegram import (
InlineQueryResultPhoto, InlineQueryResultPhoto,
InlineQueryResultVideo, InlineQueryResultVideo,
InlineQueryResultMpeg4Gif,
InputMediaPhoto, InputMediaPhoto,
InputMediaVideo InputMediaVideo,
InputMediaAnimation
) )
from common import x_url_regex, x_media_regex, x_tco_regex, logger from common import x_url_regex, x_media_regex, x_tco_regex, logger
@@ -48,6 +50,10 @@ class TweetMedia:
return f"{twimg_url}{self._uri}?format=jpg&name=4096x4096" return f"{twimg_url}{self._uri}?format=jpg&name=4096x4096"
case "video": case "video":
return self._url return self._url
case "gif":
return self._url
case _:
return self._url
@property @property
def thumb(self) -> str: def thumb(self) -> str:
@@ -56,6 +62,10 @@ class TweetMedia:
return f"{twimg_url}{self._uri}?format=jpg&name=thumb" return f"{twimg_url}{self._uri}?format=jpg&name=thumb"
case "video": case "video":
return self._thumb return self._thumb
case "gif":
return self._thumb
case _:
return self._thumb
@property @property
def type(self) -> str: def type(self) -> str:
@@ -186,8 +196,6 @@ class TGTweet(Tweet):
id=str(i), id=str(i),
photo_url=tweet_media.url, photo_url=tweet_media.url,
thumbnail_url=tweet_media.thumb, thumbnail_url=tweet_media.thumb,
title=self.url,
description=self.text,
caption=self.message_text if not i else None caption=self.message_text if not i else None
) )
elif tweet_media.type == "video": elif tweet_media.type == "video":
@@ -196,8 +204,13 @@ class TGTweet(Tweet):
video_url=tweet_media.url, video_url=tweet_media.url,
mime_type="video/mp4", mime_type="video/mp4",
thumbnail_url=tweet_media.thumb, thumbnail_url=tweet_media.thumb,
title=self.url, caption=self.message_text if not i else None
description=self.text, )
elif tweet_media.type == "gif":
yield InlineQueryResultMpeg4Gif(
id=str(i),
mpeg4_url=tweet_media.url,
thumbnail_url=tweet_media.thumb,
caption=self.message_text if not i else None caption=self.message_text if not i else None
) )
@@ -216,3 +229,9 @@ class TGTweet(Tweet):
has_spoiler=self.sensitive, has_spoiler=self.sensitive,
thumbnail=tweet_media.thumb thumbnail=tweet_media.thumb
) )
elif tweet_media.type == "gif":
yield InputMediaAnimation(
media=tweet_media.url,
has_spoiler=self.sensitive,
thumbnail=tweet_media.thumb
)