Officially remove resolve_invite_link

This commit is contained in:
Lonami Exo 2021-09-18 13:10:31 +02:00
parent 9af8ec8cce
commit ba8cdc80da
3 changed files with 13 additions and 41 deletions

View File

@ -195,6 +195,19 @@ Additionally, the ``custom.File.id`` property is gone (which used to provide acc
// this should lessen the impact of the removal of this feature
Removal of several utility methods
----------------------------------
The following ``utils`` methods no longer exist or have been made private:
* ``utils.resolve_bot_file_id``. It was half-broken.
* ``utils.pack_bot_file_id``. It was half-broken.
* ``utils.resolve_invite_link``. It has been broken for a while, so this just makes its removal
official (see `issue #1723 <https://github.com/LonamiWebs/Telethon/issues/1723>`__).
// TODO provide the new clean utils
The custom.Message class and the way it is used has changed
-----------------------------------------------------------

View File

@ -1115,43 +1115,6 @@ def _encode_telegram_base64(string):
return None # not valid base64, not valid ascii, not a string
def resolve_invite_link(link):
"""
Resolves the given invite link. Returns a tuple of
``(link creator user id, global chat id, random int)``.
Note that for broadcast channels or with the newest link format, the link
creator user ID will be zero to protect their identity. Normal chats and
megagroup channels will have such ID.
Note that the chat ID may not be accurate for chats with a link that were
upgraded to megagroup, since the link can remain the same, but the chat
ID will be correct once a new link is generated.
"""
link_hash, is_link = parse_username(link)
if not is_link:
# Perhaps the user passed the link hash directly
link_hash = link
# Little known fact, but invite links with a
# hex-string of bytes instead of base64 also works.
if re.match(r'[a-fA-F\d]+', link_hash) and len(link_hash) in (24, 32):
payload = bytes.fromhex(link_hash)
else:
payload = _decode_telegram_base64(link_hash)
try:
if len(payload) == 12:
return (0, *struct.unpack('>LQ', payload))
elif len(payload) == 16:
return struct.unpack('>LLQ', payload)
else:
pass
except (struct.error, TypeError):
pass
return None, None, None
def resolve_inline_message_id(inline_msg_id):
"""
Resolves an inline message ID. Returns a tuple of

View File

@ -204,10 +204,6 @@ class MemorySession(Session):
username, invite = utils.parse_username(key)
if username and not invite:
result = self.get_entity_rows_by_username(username)
else:
tup = utils.resolve_invite_link(key)[1]
if tup:
result = self.get_entity_rows_by_id(tup, exact=False)
elif isinstance(key, int):
result = self.get_entity_rows_by_id(key, exact)