diff --git a/telegram_client.py b/telegram_client.py index 513b59a..caebaf4 100644 --- a/telegram_client.py +++ b/telegram_client.py @@ -159,12 +159,28 @@ class TelegramClient: # Convert newlines to HTML breaks AFTER adding reactions processed_text = processed_text.replace('\n', '
') + # 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 { "id": message.id, "date": message.date.isoformat(), "text": processed_text, "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: