From 17a014906eaae2389f2ca2a66b32189d3918b0e4 Mon Sep 17 00:00:00 2001
From: zeticsce <63130611+zeticsce@users.noreply.github.com>
Date: Wed, 4 Jun 2025 01:47:39 +0500
Subject: [PATCH] Support tg-emoji tag when using html parse_mode
---
telethon/extensions/html.py | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/telethon/extensions/html.py b/telethon/extensions/html.py
index 0e2e8f33..869cc96e 100644
--- a/telethon/extensions/html.py
+++ b/telethon/extensions/html.py
@@ -13,7 +13,7 @@ from ..tl.types import (
MessageEntityPre, MessageEntityEmail, MessageEntityUrl,
MessageEntityTextUrl, MessageEntityMentionName,
MessageEntityUnderline, MessageEntityStrike, MessageEntityBlockquote,
- TypeMessageEntity
+ MessageEntityCustomEmoji, TypeMessageEntity
)
@@ -78,7 +78,15 @@ class HTMLToTelegramParser(HTMLParser):
url = None
self._open_tags_meta.popleft()
self._open_tags_meta.appendleft(url)
+ elif tag == 'tg-emoji':
+ try:
+ emoji_id = int(attrs['emoji-id'])
+ except (KeyError, ValueError):
+ return
+ EntityType = MessageEntityCustomEmoji
+ args['document_id'] = emoji_id
+
if EntityType and tag not in self._building_entities:
self._building_entities[tag] = EntityType(
offset=len(self.text),
@@ -146,6 +154,7 @@ ENTITY_TO_FORMATTER = {
MessageEntityUrl: lambda _, t: (''.format(t), ''),
MessageEntityTextUrl: lambda e, _: (''.format(escape(e.url)), ''),
MessageEntityMentionName: lambda e, _: (''.format(e.user_id), ''),
+ MessageEntityCustomEmoji: lambda e, _: (''.format(e.document_id), ''),
}