diff --git a/pyrogram/client/style/html.py b/pyrogram/client/style/html.py
index 1748fa58..9376f793 100644
--- a/pyrogram/client/style/html.py
+++ b/pyrogram/client/style/html.py
@@ -20,11 +20,11 @@ import html
import re
from collections import OrderedDict
from html.parser import HTMLParser
+from struct import unpack
import pyrogram
from pyrogram.api import types
from pyrogram.errors import PeerIdInvalid
-from . import utils
class Parser(HTMLParser):
@@ -111,11 +111,28 @@ class Parser(HTMLParser):
class HTML:
+ # SMP = Supplementary Multilingual Plane: https://en.wikipedia.org/wiki/Plane_(Unicode)#Overview
+ SMP_RE = re.compile(r"[\U00010000-\U0010FFFF]")
+
def __init__(self, client: "pyrogram.BaseClient" = None):
self.client = client
+ @staticmethod
+ def add_surrogates(text):
+ # Replace each SMP code point with a surrogate pair
+ return HTML.SMP_RE.sub(
+ lambda match: # Split SMP in two surrogates
+ "".join(chr(i) for i in unpack("
-#
-# This file is part of Pyrogram.
-#
-# Pyrogram is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as published
-# by the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Pyrogram is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with Pyrogram. If not, see .
-
-import re
-from struct import unpack
-
-# SMP = Supplementary Multilingual Plane: https://en.wikipedia.org/wiki/Plane_(Unicode)#Overview
-SMP_RE = re.compile(r"[\U00010000-\U0010FFFF]")
-
-
-def add_surrogates(text):
- # Replace each SMP code point with a surrogate pair
- return SMP_RE.sub(
- lambda match: # Split SMP in two surrogates
- "".join(chr(i) for i in unpack("