From 2084fd66af3e936571a1ddb6c9a8b16503d388a8 Mon Sep 17 00:00:00 2001 From: illvart Date: Tue, 20 Dec 2022 17:53:54 +0700 Subject: [PATCH] add spoiler, strike and underline - markdown ||spoiler|| - html spoiler - html strike - markdown --underline-- --- telethon/extensions/html.py | 12 ++++++++++-- telethon/extensions/markdown.py | 6 ++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/telethon/extensions/html.py b/telethon/extensions/html.py index a25ed58b..9b9dfb29 100644 --- a/telethon/extensions/html.py +++ b/telethon/extensions/html.py @@ -12,7 +12,7 @@ from ..tl.types import ( MessageEntityBold, MessageEntityItalic, MessageEntityCode, MessageEntityPre, MessageEntityEmail, MessageEntityUrl, MessageEntityTextUrl, MessageEntityMentionName, - MessageEntityUnderline, MessageEntityStrike, MessageEntityBlockquote, + MessageEntityUnderline, MessageEntityStrike, MessageEntityBlockquote, MessageEntitySpoiler, TypeMessageEntity ) @@ -51,10 +51,12 @@ class HTMLToTelegramParser(HTMLParser): EntityType = MessageEntityItalic elif tag == 'u': EntityType = MessageEntityUnderline - elif tag == 'del' or tag == 's': + elif tag in ['del', 's', 'strike']: EntityType = MessageEntityStrike elif tag == 'blockquote': EntityType = MessageEntityBlockquote + elif tag == 'spoiler': + EntityType = MessageEntitySpoiler elif tag == 'code': try: # If we're in the middle of a
 tag, this  tag is
@@ -195,8 +197,14 @@ def unparse(text: str, entities: Iterable[TypeMessageEntity], _offset: int = 0,
             html.append('{}'.format(entity_text))
         elif entity_type == MessageEntityStrike:
             html.append('{}'.format(entity_text))
+        elif entity_type == MessageEntityStrike:
+            html.append('{}'.format(entity_text))
+        elif entity_type == MessageEntityStrike:
+            html.append('{}'.format(entity_text))
         elif entity_type == MessageEntityBlockquote:
             html.append('
{}
'.format(entity_text)) + elif entity_type == MessageEntitySpoiler: + html.append('{}'.format(entity_text)) elif entity_type == MessageEntityPre: if entity.language: html.append( diff --git a/telethon/extensions/markdown.py b/telethon/extensions/markdown.py index d52fc347..07e759cc 100644 --- a/telethon/extensions/markdown.py +++ b/telethon/extensions/markdown.py @@ -11,7 +11,7 @@ from ..tl import TLObject from ..tl.types import ( MessageEntityBold, MessageEntityItalic, MessageEntityCode, MessageEntityPre, MessageEntityTextUrl, MessageEntityMentionName, - MessageEntityStrike + MessageEntityStrike, MessageEntityUnderline, MessageEntitySpoiler ) DEFAULT_DELIMITERS = { @@ -19,7 +19,9 @@ DEFAULT_DELIMITERS = { '__': MessageEntityItalic, '~~': MessageEntityStrike, '`': MessageEntityCode, - '```': MessageEntityPre + '```': MessageEntityPre, + '--': MessageEntityUnderline, + '||': MessageEntitySpoiler } DEFAULT_URL_RE = re.compile(r'\[([^\]]+)\]\(([^)]+)\)')