diff --git a/client/src/telethon/_impl/client/parsers/html.py b/client/src/telethon/_impl/client/parsers/html.py index f3db23ba..c7d19c46 100644 --- a/client/src/telethon/_impl/client/parsers/html.py +++ b/client/src/telethon/_impl/client/parsers/html.py @@ -48,7 +48,7 @@ class HTMLToTelegramParser(HTMLParser): EntityType = MessageEntityStrike elif tag == "blockquote": EntityType = MessageEntityBlockquote - elif tag == "spoiler" or tag == "tg-spoiler": + elif tag == "details" or tag == "tg-spoiler": EntityType = MessageEntitySpoiler elif tag == "code": try: @@ -142,7 +142,7 @@ ENTITY_TO_FORMATTER: dict[ MessageEntityUnderline: ("", ""), MessageEntityStrike: ("", ""), MessageEntityBlockquote: ("
", "
"), - MessageEntitySpoiler: ("", ""), + MessageEntitySpoiler: ("
", "
"), MessageEntityPre: lambda e, _: ( '
'.format(e.language) if e.language else "
",
         "
" if e.language else "
", diff --git a/client/src/telethon/_impl/client/parsers/markdown.py b/client/src/telethon/_impl/client/parsers/markdown.py index edcef674..2ccf8ac7 100644 --- a/client/src/telethon/_impl/client/parsers/markdown.py +++ b/client/src/telethon/_impl/client/parsers/markdown.py @@ -43,6 +43,7 @@ HTML_TO_TYPE = { "del": ("s_close", "s_open"), "u": ("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")) elif token.type in ("s_close", "s_open"): push(MessageEntityStrike) + elif token.type in ("details_close", "details_open"): + push(MessageEntitySpoiler) elif token.type == "softbreak": message += "\n" elif token.type in ("strong_close", "strong_open"):