mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-22 09:26:37 +03:00
Further validate the username on parse_username
This commit is contained in:
parent
39621ceae9
commit
c31635cc34
|
@ -30,6 +30,8 @@ USERNAME_RE = re.compile(
|
|||
r'@|(?:https?://)?(?:telegram\.(?:me|dog)|t\.me)/(joinchat/)?'
|
||||
)
|
||||
|
||||
VALID_USERNAME_RE = re.compile(r'^[a-zA-Z][\w\d]{3,30}[a-zA-Z\d]$')
|
||||
|
||||
|
||||
def get_display_name(entity):
|
||||
"""Gets the input peer for the given "entity" (user, chat or channel)
|
||||
|
@ -326,6 +328,7 @@ def is_image(file):
|
|||
return (isinstance(file, str) and
|
||||
(mimetypes.guess_type(file)[0] or '').startswith('image/'))
|
||||
|
||||
|
||||
def is_audio(file):
|
||||
"""Returns True if the file extension looks like an audio file"""
|
||||
return (isinstance(file, str) and
|
||||
|
@ -353,15 +356,21 @@ def parse_username(username):
|
|||
a string, username or URL. Returns a tuple consisting of
|
||||
both the stripped, lowercase username and whether it is
|
||||
a joinchat/ hash (in which case is not lowercase'd).
|
||||
|
||||
Returns None if the username is not valid.
|
||||
"""
|
||||
username = username.strip()
|
||||
m = USERNAME_RE.match(username)
|
||||
if m:
|
||||
result = username[m.end():]
|
||||
username = username[m.end():]
|
||||
is_invite = bool(m.group(1))
|
||||
return result if is_invite else result.lower(), is_invite
|
||||
else:
|
||||
if is_invite:
|
||||
return username, True
|
||||
|
||||
if VALID_USERNAME_RE.match(username):
|
||||
return username.lower(), False
|
||||
else:
|
||||
return None, False
|
||||
|
||||
|
||||
def get_peer_id(peer):
|
||||
|
|
Loading…
Reference in New Issue
Block a user