Skip to content

Commit c0f61fd

Browse files
committed
Add html unparse
1 parent 6b549ef commit c0f61fd

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

pyrogram/client/style/html.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,41 @@ def parse(self, text):
7979
message=utils.remove_surrogates(text),
8080
entities=entities
8181
)
82+
83+
def unparse(self, message: str, entities: list):
84+
message = utils.add_surrogates(message).strip()
85+
offset = 0
86+
87+
for entity in entities:
88+
start = entity.offset + offset
89+
type = entity.type
90+
url = entity.url
91+
user = entity.user
92+
sub = message[start: start + entity.length]
93+
94+
if type == "bold":
95+
style = "b"
96+
elif type == "italic":
97+
style = "i"
98+
elif type == "code":
99+
style = "code"
100+
elif type == "pre":
101+
style = "pre"
102+
elif type == "text_link":
103+
offset += 15 + len(url)
104+
message = message[:start] + message[start:].replace(
105+
sub, "<a href=\"{}\">{}</a>".format(url, sub), 1)
106+
continue
107+
elif type == "text_mention":
108+
offset += 28 + len(str(user.id))
109+
message = message[:start] + message[start:].replace(
110+
sub, "<a href=\"tg://user?id={}\">{}</a>".format(user.id, sub), 1)
111+
continue
112+
else:
113+
continue
114+
115+
offset += len(style) * 2 + 5
116+
message = message[:start] + message[start:].replace(
117+
sub, "<{0}>{1}</{0}>".format(style, sub), 1)
118+
119+
return utils.remove_surrogates(message)

0 commit comments

Comments
 (0)