import re from struct import unpack from pyrogram.api.types import ( MessageEntityBold as Bold, MessageEntityItalic as Italic, MessageEntityCode as Code, MessageEntityTextUrl as Url, MessageEntityPre as Pre, MessageEntityMentionName as MentionInvalid, InputMessageEntityMentionName as Mention, ) class HTML: SMP_RE = re.compile(r"[\U00010000-\U0010FFFF]") HTML_RE = re.compile(r"<(\w+)(?: href=\"(.*)\")?>(.*)") MENTION_RE = re.compile(r"tg://user\?id=(\d+)") @classmethod def add_surrogates(cls, text): return cls.SMP_RE.sub( lambda match: # Split SMP in two surrogates "".join(chr(i) for i in unpack("