Enhance HTML tag support for existing entities

Added `details` tag handling for the existing `MessageEntitySpoiler` entity. Expanded `MessageEntityStrike` detection by including the `strike` tag.
This commit is contained in:
Darskiy 2025-03-11 02:41:47 +02:00
parent 67765f84a5
commit e9fd38fc02

View File

@ -13,7 +13,7 @@ from ..tl.types import (
MessageEntityPre, MessageEntityEmail, MessageEntityUrl, MessageEntityPre, MessageEntityEmail, MessageEntityUrl,
MessageEntityTextUrl, MessageEntityMentionName, MessageEntityTextUrl, MessageEntityMentionName,
MessageEntityUnderline, MessageEntityStrike, MessageEntityBlockquote, MessageEntityUnderline, MessageEntityStrike, MessageEntityBlockquote,
TypeMessageEntity TypeMessageEntity, MessageEntitySpoiler
) )
@ -39,8 +39,10 @@ class HTMLToTelegramParser(HTMLParser):
EntityType = MessageEntityItalic EntityType = MessageEntityItalic
elif tag == 'u': elif tag == 'u':
EntityType = MessageEntityUnderline EntityType = MessageEntityUnderline
elif tag == 'del' or tag == 's': elif tag in ('del', 's', 'strike'):
EntityType = MessageEntityStrike EntityType = MessageEntityStrike
elif tag == 'details':
EntityType = MessageEntitySpoiler
elif tag == 'blockquote': elif tag == 'blockquote':
EntityType = MessageEntityBlockquote EntityType = MessageEntityBlockquote
elif tag == 'code': elif tag == 'code':
@ -131,6 +133,7 @@ def parse(html: str) -> Tuple[str, List[TypeMessageEntity]]:
ENTITY_TO_FORMATTER = { ENTITY_TO_FORMATTER = {
MessageEntityBold: ('<strong>', '</strong>'), MessageEntityBold: ('<strong>', '</strong>'),
MessageEntityItalic: ('<em>', '</em>'), MessageEntityItalic: ('<em>', '</em>'),
MessageEntitySpoiler: ('<details>', '</details>'),
MessageEntityCode: ('<code>', '</code>'), MessageEntityCode: ('<code>', '</code>'),
MessageEntityUnderline: ('<u>', '</u>'), MessageEntityUnderline: ('<u>', '</u>'),
MessageEntityStrike: ('<del>', '</del>'), MessageEntityStrike: ('<del>', '</del>'),