diff --git a/post_parser.py b/post_parser.py
index ce45110..dacb82d 100644
--- a/post_parser.py
+++ b/post_parser.py
@@ -147,27 +147,28 @@ class PostParser:
base_url = Config['pyrogram_bridge_url']
if message.media:
- file_id = self._get_file_id(message)
- print(file_id)
- if file_id:
+ file_unique_id = self._get_file_unique_id(message)
+ print(file_unique_id)
+ if file_unique_id:
+ url = f"{base_url}/media/{message.chat.username}/{message.id}/{file_unique_id}"
html_content.append(f'
')
@@ -221,11 +222,12 @@ class PostParser:
base_url = Config['pyrogram_bridge_url']
try:
if photo := getattr(webpage, "photo", None):
- if file_id := getattr(photo, "file_unique_id", None):
+ if file_unique_id := getattr(photo, "file_unique_id", None):
+ url = f"{base_url}/media/{webpage.chat.username}/{webpage.id}/{file_unique_id}"
return (
f''
)
return None
@@ -275,7 +277,7 @@ class PostParser:
logger.error(f"poll_parsing_error: {str(e)}")
return '[Error displaying poll]
'
- def _get_file_id(self, message: Message) -> Union[str, None]:
+ def _get_file_unique_id(self, message: Message) -> Union[str, None]:
try:
media_mapping = {
MessageMediaType.PHOTO: lambda m: m.photo.file_unique_id,
diff --git a/telegram_client.py b/telegram_client.py
new file mode 100644
index 0000000..970f311
--- /dev/null
+++ b/telegram_client.py
@@ -0,0 +1,36 @@
+import logging
+from pyrogram import Client
+from config import get_settings
+
+
+logger = logging.getLogger(__name__)
+settings = get_settings()
+
+class TelegramClient:
+ def __init__(self):
+ if settings["session_string"]:
+ self.client = Client(
+ name="pyro_bridge",
+ session_string=settings["session_string"],
+ api_id=settings["tg_api_id"],
+ api_hash=settings["tg_api_hash"],
+ in_memory=True
+ )
+ else:
+ self.client = Client(
+ name="pyro_bridge",
+ api_id=settings["tg_api_id"],
+ api_hash=settings["tg_api_hash"],
+ workdir=settings["session_path"],
+ in_memory=True
+ )
+
+ async def start(self):
+ if not self.client.is_connected:
+ await self.client.start()
+ logger.info("Telegram client connected")
+
+ async def stop(self):
+ if self.client.is_connected:
+ await self.client.stop()
+ logger.info("Telegram client disconnected")