mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-29 12:53:44 +03:00
Fix resolve_invite_link in Python 3.6
This commit is contained in:
parent
c0ed709adf
commit
4bf1d67eba
|
@ -1267,14 +1267,13 @@ def resolve_invite_link(link):
|
||||||
Resolves the given invite link. Returns a tuple of
|
Resolves the given invite link. Returns a tuple of
|
||||||
``(link creator user id, global chat id, random int)``.
|
``(link creator user id, global chat id, random int)``.
|
||||||
|
|
||||||
Note that for broadcast channels, the link creator
|
Note that for broadcast channels or with the newest link format, the link
|
||||||
user ID will be zero to protect their identity.
|
creator user ID will be zero to protect their identity. Normal chats and
|
||||||
Normal chats and megagroup channels will have such ID.
|
megagroup channels will have such ID.
|
||||||
|
|
||||||
Note that the chat ID may not be accurate for chats
|
Note that the chat ID may not be accurate for chats with a link that were
|
||||||
with a link that were upgraded to megagroup, since
|
upgraded to megagroup, since the link can remain the same, but the chat
|
||||||
the link can remain the same, but the chat ID will
|
ID will be correct once a new link is generated.
|
||||||
be correct once a new link is generated.
|
|
||||||
"""
|
"""
|
||||||
link_hash, is_link = parse_username(link)
|
link_hash, is_link = parse_username(link)
|
||||||
if not is_link:
|
if not is_link:
|
||||||
|
@ -1283,14 +1282,14 @@ def resolve_invite_link(link):
|
||||||
|
|
||||||
# Little known fact, but invite links with a
|
# Little known fact, but invite links with a
|
||||||
# hex-string of bytes instead of base64 also works.
|
# hex-string of bytes instead of base64 also works.
|
||||||
if re.match(r'[a-fA-F\d]{32}', link_hash):
|
if re.match(r'[a-fA-F\d]+', link_hash) and len(link_hash) in (24, 32):
|
||||||
payload = bytes.fromhex(link_hash)
|
payload = bytes.fromhex(link_hash)
|
||||||
else:
|
else:
|
||||||
payload = _decode_telegram_base64(link_hash)
|
payload = _decode_telegram_base64(link_hash)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if len(payload) == 12:
|
if len(payload) == 12:
|
||||||
return 0, *struct.unpack('>LQ', payload)
|
return (0, *struct.unpack('>LQ', payload))
|
||||||
elif len(payload) == 16:
|
elif len(payload) == 16:
|
||||||
return struct.unpack('>LLQ', payload)
|
return struct.unpack('>LLQ', payload)
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user