From c0f61fd40cc91c021e21a09039363fe6bafabde1 Mon Sep 17 00:00:00 2001
From: Dan <14043624+delivrance@users.noreply.github.com>
Date: Fri, 11 May 2018 13:37:49 +0200
Subject: [PATCH] Add html unparse
---
pyrogram/client/style/html.py | 38 +++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/pyrogram/client/style/html.py b/pyrogram/client/style/html.py
index 3b333c3b..63a80733 100644
--- a/pyrogram/client/style/html.py
+++ b/pyrogram/client/style/html.py
@@ -79,3 +79,41 @@ class HTML:
message=utils.remove_surrogates(text),
entities=entities
)
+
+ def unparse(self, message: str, entities: list):
+ message = utils.add_surrogates(message).strip()
+ offset = 0
+
+ for entity in entities:
+ start = entity.offset + offset
+ type = entity.type
+ url = entity.url
+ user = entity.user
+ sub = message[start: start + entity.length]
+
+ if type == "bold":
+ style = "b"
+ elif type == "italic":
+ style = "i"
+ elif type == "code":
+ style = "code"
+ elif type == "pre":
+ style = "pre"
+ elif type == "text_link":
+ offset += 15 + len(url)
+ message = message[:start] + message[start:].replace(
+ sub, "{}".format(url, sub), 1)
+ continue
+ elif type == "text_mention":
+ offset += 28 + len(str(user.id))
+ message = message[:start] + message[start:].replace(
+ sub, "{}".format(user.id, sub), 1)
+ continue
+ else:
+ continue
+
+ offset += len(style) * 2 + 5
+ message = message[:start] + message[start:].replace(
+ sub, "<{0}>{1}{0}>".format(style, sub), 1)
+
+ return utils.remove_surrogates(message)