From 3b2d065d358c6d7a76b7aa62f5b437e30a241c6f Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Fri, 6 Apr 2018 19:21:02 +0200 Subject: [PATCH] Simplify .get_input_entity code flow (since 591e34b) --- telethon/telegram_client.py | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/telethon/telegram_client.py b/telethon/telegram_client.py index 3df26e79..ab5260d2 100644 --- a/telethon/telegram_client.py +++ b/telethon/telegram_client.py @@ -14,6 +14,7 @@ from io import BytesIO from mimetypes import guess_type from .crypto import CdnDecrypter +from .tl import TLObject from .tl.custom import InputSizedFile from .tl.functions.upload import ( SaveBigFilePartRequest, SaveFilePartRequest, GetFileRequest @@ -38,8 +39,7 @@ from .errors import ( RPCError, UnauthorizedError, PhoneCodeEmptyError, PhoneCodeExpiredError, PhoneCodeHashEmptyError, PhoneCodeInvalidError, LocationInvalidError, SessionPasswordNeededError, FileMigrateError, PhoneNumberUnoccupiedError, - PhoneNumberOccupiedError, EmailUnconfirmedError, PasswordEmptyError, - UsernameNotOccupiedError + PhoneNumberOccupiedError, UsernameNotOccupiedError ) from .network import ConnectionMode from .tl.custom import Draft, Dialog @@ -2460,19 +2460,12 @@ class TelegramClient(TelegramBareClient): if isinstance(peer, str): return utils.get_input_peer(self._get_entity_from_string(peer)) - original_peer = peer - if not isinstance(peer, int): - try: - if getattr(peer, 'SUBCLASS_OF_ID', 0) != 0x2d45687: - # 0x2d45687 == crc32(b'Peer') - return utils.get_input_peer(peer) - except TypeError: - peer = None - - if not peer: - raise TypeError( - 'Cannot turn "{}" into an input entity.'.format(original_peer) - ) + if not isinstance(peer, int) and (not isinstance(peer, TLObject) + or peer.SUBCLASS_OF_ID != 0x2d45687): + # Try casting the object into an input peer. Might TypeError. + # Don't do it if a not-found ID was given (instead ValueError). + # Also ignore Peer (0x2d45687 == crc32(b'Peer'))'s, lacking hash. + return utils.get_input_peer(peer) raise ValueError( 'Could not find the input entity corresponding to "{}". '