Skip to content

Commit 8a24166

Browse files
committed
Fix HTML and Markdown unparsing
1 parent a93e218 commit 8a24166

File tree

2 files changed

+23
-17
lines changed

2 files changed

+23
-17
lines changed

pyrogram/parser/html.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import pyrogram
2626
from pyrogram import raw
27+
from pyrogram.enums import MessageEntityType
2728
from pyrogram.errors import PeerIdInvalid
2829
from . import utils
2930

@@ -155,17 +156,21 @@ def unparse(text: str, entities: list):
155156
start = entity.offset
156157
end = start + entity.length
157158

158-
if entity_type in ("bold", "italic", "underline", "strikethrough"):
159-
start_tag = f"<{entity_type[0]}>"
160-
end_tag = f"</{entity_type[0]}>"
161-
elif entity_type in ("code", "pre", "blockquote", "spoiler"):
162-
start_tag = f"<{entity_type}>"
163-
end_tag = f"</{entity_type}>"
164-
elif entity_type == "text_link":
159+
if entity_type in (MessageEntityType.BOLD, MessageEntityType.ITALIC, MessageEntityType.UNDERLINE,
160+
MessageEntityType.STRIKETHROUGH):
161+
name = entity_type.name[0].lower()
162+
start_tag = f"<{name}>"
163+
end_tag = f"</{name}>"
164+
elif entity_type in (MessageEntityType.CODE, MessageEntityType.PRE, MessageEntityType.BLOCKQUOTE,
165+
MessageEntityType.SPOILER):
166+
name = entity_type.name.lower()
167+
start_tag = f"<{name}>"
168+
end_tag = f"</{name}>"
169+
elif entity_type == MessageEntityType.TEXT_LINK:
165170
url = entity.url
166171
start_tag = f'<a href="{url}">'
167172
end_tag = "</a>"
168-
elif entity_type == "text_mention":
173+
elif entity_type == MessageEntityType.TEXT_MENTION:
169174
user = entity.user
170175
start_tag = f'<a href="tg://user?id={user.id}">'
171176
end_tag = "</a>"

pyrogram/parser/markdown.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from typing import Optional
2222

2323
import pyrogram
24+
from pyrogram.enums import MessageEntityType
2425
from . import utils
2526
from .html import HTML
2627

@@ -119,25 +120,25 @@ def unparse(text: str, entities: list):
119120
start = entity.offset
120121
end = start + entity.length
121122

122-
if entity_type == "bold":
123+
if entity_type == MessageEntityType.BOLD:
123124
start_tag = end_tag = BOLD_DELIM
124-
elif entity_type == "italic":
125+
elif entity_type == MessageEntityType.ITALIC:
125126
start_tag = end_tag = ITALIC_DELIM
126-
elif entity_type == "underline":
127+
elif entity_type == MessageEntityType.UNDERLINE:
127128
start_tag = end_tag = UNDERLINE_DELIM
128-
elif entity_type == "strikethrough":
129+
elif entity_type == MessageEntityType.STRIKETHROUGH:
129130
start_tag = end_tag = STRIKE_DELIM
130-
elif entity_type == "code":
131+
elif entity_type == MessageEntityType.CODE:
131132
start_tag = end_tag = CODE_DELIM
132-
elif entity_type in ("pre", "blockquote"):
133+
elif entity_type in (MessageEntityType.PRE, MessageEntityType.BLOCKQUOTE):
133134
start_tag = end_tag = PRE_DELIM
134-
elif entity_type == "spoiler":
135+
elif entity_type == MessageEntityType.SPOILER:
135136
start_tag = end_tag = SPOILER_DELIM
136-
elif entity_type == "text_link":
137+
elif entity_type == MessageEntityType.TEXT_LINK:
137138
url = entity.url
138139
start_tag = "["
139140
end_tag = f"]({url})"
140-
elif entity_type == "text_mention":
141+
elif entity_type == MessageEntityType.TEXT_MENTION:
141142
user = entity.user
142143
start_tag = "["
143144
end_tag = f"](tg://user?id={user.id})"

0 commit comments

Comments
 (0)