This commit is contained in:
Zaid _ 2024-06-20 17:06:19 +03:00
parent c909221042
commit b3e6987654
2 changed files with 5 additions and 2 deletions

View File

@ -48,7 +48,7 @@ class HTMLToTelegramParser(HTMLParser):
EntityType = MessageEntityStrike EntityType = MessageEntityStrike
elif tag == "blockquote": elif tag == "blockquote":
EntityType = MessageEntityBlockquote EntityType = MessageEntityBlockquote
elif tag == "spoiler" or tag == "tg-spoiler": elif tag == "details" or tag == "tg-spoiler":
EntityType = MessageEntitySpoiler EntityType = MessageEntitySpoiler
elif tag == "code": elif tag == "code":
try: try:
@ -142,7 +142,7 @@ ENTITY_TO_FORMATTER: dict[
MessageEntityUnderline: ("<u>", "</u>"), MessageEntityUnderline: ("<u>", "</u>"),
MessageEntityStrike: ("<del>", "</del>"), MessageEntityStrike: ("<del>", "</del>"),
MessageEntityBlockquote: ("<blockquote>", "</blockquote>"), MessageEntityBlockquote: ("<blockquote>", "</blockquote>"),
MessageEntitySpoiler: ("<spoiler>", "</spoiler>"), MessageEntitySpoiler: ("<details>", "</details>"),
MessageEntityPre: lambda e, _: ( MessageEntityPre: lambda e, _: (
'<pre><code class="language-{}">'.format(e.language) if e.language else "<pre>", '<pre><code class="language-{}">'.format(e.language) if e.language else "<pre>",
"</code></pre>" if e.language else "</pre>", "</code></pre>" if e.language else "</pre>",

View File

@ -43,6 +43,7 @@ HTML_TO_TYPE = {
"del": ("s_close", "s_open"), "del": ("s_close", "s_open"),
"u": ("heading_open", "heading_close"), "u": ("heading_open", "heading_close"),
"mark": ("heading_open", "heading_close"), "mark": ("heading_open", "heading_close"),
"details": ("details_close", "details_open")
} }
@ -138,6 +139,8 @@ def parse(message: str) -> tuple[str, list[MessageEntity]]:
push(MessageEntityTextUrl, url=token.attrs.get("href")) push(MessageEntityTextUrl, url=token.attrs.get("href"))
elif token.type in ("s_close", "s_open"): elif token.type in ("s_close", "s_open"):
push(MessageEntityStrike) push(MessageEntityStrike)
elif token.type in ("details_close", "details_open"):
push(MessageEntitySpoiler)
elif token.type == "softbreak": elif token.type == "softbreak":
message += "\n" message += "\n"
elif token.type in ("strong_close", "strong_open"): elif token.type in ("strong_close", "strong_open"):