mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-25 19:03:46 +03:00
Officially remove resolve_invite_link
This commit is contained in:
parent
9af8ec8cce
commit
ba8cdc80da
|
@ -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
|
||||
-----------------------------------------------------------
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user