Commit 52124c5

benny-dou <60535774+benny-dou@users.noreply.github.com>
2025-01-22 19:27:17
chore: add message URL to `parse_msg` response
1 parent cbf318f
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