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), ''),
}