FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
pyrogram/pyrogram/parser/utils.py at master · CodeXBotz/pyrogram · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
CodeXBotz
/
pyrogram
Public
forked from
pyrogram/pyrogram
Notifications
You must be signed in to change notification settings
Fork
3
Star
4
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
pyrogram
/
pyrogram
/
parser
/
utils.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
41 lines (33 loc) · 1.51 KB
Breadcrumbs
pyrogram
/
pyrogram
/
parser
/
utils.py
Copy path
File metadata and controls
41 lines (33 loc) · 1.51 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Pyrogram - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
#
# 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 <http://www.gnu.org/licenses/>.
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
(
"<HH"
,
match
.
group
().
encode
(
"utf-16le"
))),
text
)
def
remove_surrogates
(
text
):
# Replace each surrogate pair with a SMP code point
return
text
.
encode
(
"utf-16"
,
"surrogatepass"
).
decode
(
"utf-16"
)
def
replace_once
(
source
:
str
,
old
:
str
,
new
:
str
,
start
:
int
):
return
source
[:
start
]
+
source
[
start
:].
replace
(
old
,
new
,
1
)
Back
|
FazBrowse Home
|
New Git URL