Add author information extraction to Telegram message parsing

This commit is contained in:
vvzvlad
2025-02-01 20:15:22 +03:00
parent b33fb2e060
commit 7a678bf08e
+17 -1
View File
@@ -159,12 +159,28 @@ class TelegramClient:
# Convert newlines to HTML breaks AFTER adding reactions # Convert newlines to HTML breaks AFTER adding reactions
processed_text = processed_text.replace('\n', '<br>') processed_text = processed_text.replace('\n', '<br>')
# Extract author information
author_str = ""
if message.sender_chat:
title = getattr(message.sender_chat, "title", "").strip()
username = getattr(message.sender_chat, "username", "").strip()
author_str = f"{title} by @{username}" if username else title
elif message.from_user:
first = getattr(message.from_user, "first_name", "").strip()
last = getattr(message.from_user, "last_name", "").strip()
username = getattr(message.from_user, "username", "").strip()
name = " ".join(filter(None, [first, last]))
author_str = f"{name} by @{username}" if username else name
else:
author_str = "Unknown author"
return { return {
"id": message.id, "id": message.id,
"date": message.date.isoformat(), "date": message.date.isoformat(),
"text": processed_text, "text": processed_text,
"views": message.views or 0, "views": message.views or 0,
"media_group_id": message.media_group_id "media_group_id": message.media_group_id,
"author": author_str
} }
async def _parse_media(self, media_obj) -> dict: async def _parse_media(self, media_obj) -> dict: