From cd1e41b130297d3517c4e3cf0d14f2f81b2801a7 Mon Sep 17 00:00:00 2001 From: Dan <14043624+delivrance@users.noreply.github.com> Date: Mon, 24 Jun 2019 14:33:17 +0200 Subject: [PATCH] Delete style utils.py and move its content inside html.py The HTML parser is now the only one that makes use of those util methods --- pyrogram/client/style/html.py | 23 ++++++++++++++++++--- pyrogram/client/style/utils.py | 37 ---------------------------------- 2 files changed, 20 insertions(+), 40 deletions(-) delete mode 100644 pyrogram/client/style/utils.py 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("