Commit 52124c5
Changed files (1)
src/message_utils.py
@@ -42,15 +42,14 @@ def parse_msg(message: Message, *, verbose: bool = False) -> dict:
gif = message.animation.file_name if message.animation else ""
sticker = message.sticker.set_name if message.sticker else ""
file_name = message.document.file_name if message.document else ""
+ message_url = f"https://t.me/c/{str(cid).removeprefix('-100')}/{mid}"
- # Parse URL from message entities (Only the first one)
- entity_url = ""
+ # Parse URL from message entities
+ entity_urls = []
if message.entities:
- for entity in message.entities:
- if entity.type == MessageEntityType.TEXT_LINK:
- logger.trace(f"URL found from message entity: {entity.url}")
- entity_url = entity.url
- break
+ entity_urls.extend(entity.url for entity in message.entities if entity.type == MessageEntityType.TEXT_LINK)
+ if message.caption_entities:
+ entity_urls.extend(entity.url for entity in message.caption_entities if entity.type == MessageEntityType.TEXT_LINK)
# log the summary to console
chat_type_emoji = {
@@ -100,7 +99,8 @@ def parse_msg(message: Message, *, verbose: bool = False) -> dict:
"gif": str(gif),
"sticker": str(sticker),
"summary": str(summary),
- "entity_url": str(entity_url),
+ "message_url": str(message_url),
+ "entity_urls": entity_urls,
}
cache.set(f"parse_msg-{message.chat.id}-{message.id}", info, ttl=120) # cache the same msg for 2 minutes
return info