mirror of
https://github.com/TheFunny/TelegramTwitterMediaBot.git
synced 2026-09-24 23:42:18 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a6325d5bc8
|
||
|
|
6c0e581135
|
||
|
|
494fc50446
|
||
|
|
a4e568667c
|
+1
-1
@@ -3,4 +3,4 @@ __pycache__/
|
|||||||
cert/
|
cert/
|
||||||
data/
|
data/
|
||||||
docker-compose.yml
|
docker-compose.yml
|
||||||
x.py
|
utils/x.py
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from telegram.ext import (ApplicationBuilder, CallbackQueryHandler, CommandHandl
|
|||||||
InlineQueryHandler, MessageHandler, PicklePersistence, filters)
|
InlineQueryHandler, MessageHandler, PicklePersistence, filters)
|
||||||
|
|
||||||
import common
|
import common
|
||||||
from tweet import Telegram
|
from utils.tweet import Telegram
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from telegram import Chat, Message, Update
|
from telegram import Chat, Message, Update
|
||||||
@@ -51,7 +51,7 @@ async def url_media(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|||||||
media,
|
media,
|
||||||
caption=tweet.message_text,
|
caption=tweet.message_text,
|
||||||
reply_to_message_id=update.message.message_id,
|
reply_to_message_id=update.message.message_id,
|
||||||
) if not isinstance(tuple, media[0]) else await update.effective_message.reply_animation(
|
) if not isinstance(media[0], tuple) else await update.effective_message.reply_animation(
|
||||||
media[0][0],
|
media[0][0],
|
||||||
caption=tweet.message_text,
|
caption=tweet.message_text,
|
||||||
reply_to_message_id=update.message.message_id,
|
reply_to_message_id=update.message.message_id,
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
from typing import Type, TypedDict
|
|
||||||
|
|
||||||
from telegram import InlineQueryResultMpeg4Gif, InlineQueryResultPhoto, InlineQueryResultVideo, InputMediaPhoto, \
|
|
||||||
InputMediaVideo
|
|
||||||
|
|
||||||
TypeInlineQueryResult: Type[
|
|
||||||
InlineQueryResultMpeg4Gif | InlineQueryResultPhoto | InlineQueryResultVideo] = InlineQueryResultMpeg4Gif | InlineQueryResultPhoto | InlineQueryResultVideo
|
|
||||||
InputMediaAnimation = tuple[str, bool]
|
|
||||||
TypeMessageMediaResult: Type[
|
|
||||||
InputMediaPhoto | InputMediaVideo | InputMediaAnimation] = InputMediaPhoto | InputMediaVideo | InputMediaAnimation
|
|
||||||
|
|
||||||
|
|
||||||
class TweetInfo(TypedDict):
|
|
||||||
tweetID: str
|
|
||||||
user_name: str
|
|
||||||
user_screen_name: str
|
|
||||||
text: str
|
|
||||||
media_extended: list[dict]
|
|
||||||
possibly_sensitive: bool
|
|
||||||
@@ -12,7 +12,7 @@ from telegram import (InlineQueryResultMpeg4Gif, InlineQueryResultPhoto, InlineQ
|
|||||||
from common import get_logger, x_media_regex, x_tco_regex, x_url_regex
|
from common import get_logger, x_media_regex, x_tco_regex, x_url_regex
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from types import TweetInfo, TypeInlineQueryResult, TypeMessageMediaResult
|
from .types import TweetInfo, TypeInlineQueryResult, TypeMessageMediaResult
|
||||||
|
|
||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
@@ -158,7 +158,7 @@ class ProcessTweet:
|
|||||||
async def _fetch_tweet(self) -> TweetInfo:
|
async def _fetch_tweet(self) -> TweetInfo:
|
||||||
match = x_url_regex.match(self._url)
|
match = x_url_regex.match(self._url)
|
||||||
assert match, f"Invalid URL: {self._url}"
|
assert match, f"Invalid URL: {self._url}"
|
||||||
auther_id, tweet_id = match.group()
|
auther_id, tweet_id = match.groups()
|
||||||
return await fetch_json(self._httpx_client, vx_api_url.format(auther_id, tweet_id))
|
return await fetch_json(self._httpx_client, vx_api_url.format(auther_id, tweet_id))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -273,6 +273,9 @@ class Telegram:
|
|||||||
async with TelegramTweet(self._httpx_client, self._url) as tweet:
|
async with TelegramTweet(self._httpx_client, self._url) as tweet:
|
||||||
return tweet
|
return tweet
|
||||||
|
|
||||||
|
async def __aexit__(self, exc_type, exc_val, exc_tb):
|
||||||
|
pass
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def init_client(cls) -> None:
|
def init_client(cls) -> None:
|
||||||
cls._httpx_client = create_client()
|
cls._httpx_client = create_client()
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
from typing import TypedDict
|
||||||
|
|
||||||
|
from telegram import InlineQueryResultMpeg4Gif, InlineQueryResultPhoto, InlineQueryResultVideo, InputMediaPhoto, \
|
||||||
|
InputMediaVideo
|
||||||
|
|
||||||
|
TypeInlineQueryResult = InlineQueryResultMpeg4Gif | InlineQueryResultPhoto | InlineQueryResultVideo
|
||||||
|
InputMediaAnimation = tuple[str, bool]
|
||||||
|
TypeMessageMediaResult = InputMediaPhoto | InputMediaVideo | InputMediaAnimation
|
||||||
|
|
||||||
|
|
||||||
|
class TweetInfo(TypedDict):
|
||||||
|
tweetID: str
|
||||||
|
user_name: str
|
||||||
|
user_screen_name: str
|
||||||
|
text: str
|
||||||
|
media_extended: list[dict]
|
||||||
|
possibly_sensitive: bool
|
||||||
Reference in New Issue
Block a user