add spoiler, strike and underline

- markdown ||spoiler||
- html <spoiler>spoiler</spoiler>
- html <strike>strike</strike>
- markdown --underline--
This commit is contained in:
illvart 2022-12-20 17:53:54 +07:00
parent e750eb7ab5
commit 2084fd66af
2 changed files with 14 additions and 4 deletions

View File

@ -12,7 +12,7 @@ from ..tl.types import (
MessageEntityBold, MessageEntityItalic, MessageEntityCode, MessageEntityBold, MessageEntityItalic, MessageEntityCode,
MessageEntityPre, MessageEntityEmail, MessageEntityUrl, MessageEntityPre, MessageEntityEmail, MessageEntityUrl,
MessageEntityTextUrl, MessageEntityMentionName, MessageEntityTextUrl, MessageEntityMentionName,
MessageEntityUnderline, MessageEntityStrike, MessageEntityBlockquote, MessageEntityUnderline, MessageEntityStrike, MessageEntityBlockquote, MessageEntitySpoiler,
TypeMessageEntity TypeMessageEntity
) )
@ -51,10 +51,12 @@ 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 == 'blockquote': elif tag == 'blockquote':
EntityType = MessageEntityBlockquote EntityType = MessageEntityBlockquote
elif tag == 'spoiler':
EntityType = MessageEntitySpoiler
elif tag == 'code': elif tag == 'code':
try: try:
# If we're in the middle of a <pre> tag, this <code> tag is # If we're in the middle of a <pre> tag, this <code> tag is
@ -195,8 +197,14 @@ def unparse(text: str, entities: Iterable[TypeMessageEntity], _offset: int = 0,
html.append('<u>{}</u>'.format(entity_text)) html.append('<u>{}</u>'.format(entity_text))
elif entity_type == MessageEntityStrike: elif entity_type == MessageEntityStrike:
html.append('<del>{}</del>'.format(entity_text)) html.append('<del>{}</del>'.format(entity_text))
elif entity_type == MessageEntityStrike:
html.append('<s>{}</s>'.format(entity_text))
elif entity_type == MessageEntityStrike:
html.append('<strike>{}</strike>'.format(entity_text))
elif entity_type == MessageEntityBlockquote: elif entity_type == MessageEntityBlockquote:
html.append('<blockquote>{}</blockquote>'.format(entity_text)) html.append('<blockquote>{}</blockquote>'.format(entity_text))
elif entity_type == MessageEntitySpoiler:
html.append('<spoiler>{}</spoiler>'.format(entity_text))
elif entity_type == MessageEntityPre: elif entity_type == MessageEntityPre:
if entity.language: if entity.language:
html.append( html.append(

View File

@ -11,7 +11,7 @@ from ..tl import TLObject
from ..tl.types import ( from ..tl.types import (
MessageEntityBold, MessageEntityItalic, MessageEntityCode, MessageEntityBold, MessageEntityItalic, MessageEntityCode,
MessageEntityPre, MessageEntityTextUrl, MessageEntityMentionName, MessageEntityPre, MessageEntityTextUrl, MessageEntityMentionName,
MessageEntityStrike MessageEntityStrike, MessageEntityUnderline, MessageEntitySpoiler
) )
DEFAULT_DELIMITERS = { DEFAULT_DELIMITERS = {
@ -19,7 +19,9 @@ DEFAULT_DELIMITERS = {
'__': MessageEntityItalic, '__': MessageEntityItalic,
'~~': MessageEntityStrike, '~~': MessageEntityStrike,
'`': MessageEntityCode, '`': MessageEntityCode,
'```': MessageEntityPre '```': MessageEntityPre,
'--': MessageEntityUnderline,
'||': MessageEntitySpoiler
} }
DEFAULT_URL_RE = re.compile(r'\[([^\]]+)\]\(([^)]+)\)') DEFAULT_URL_RE = re.compile(r'\[([^\]]+)\]\(([^)]+)\)')