mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-03-27 05:14:14 +03:00
Allow auto-casting custom.Dialog into input_entity
This commit is contained in:
parent
baa6976a0b
commit
0cd44b245c
|
@ -2463,9 +2463,10 @@ class TelegramClient(TelegramBareClient):
|
||||||
original_peer = peer
|
original_peer = peer
|
||||||
if not isinstance(peer, int):
|
if not isinstance(peer, int):
|
||||||
try:
|
try:
|
||||||
if peer.SUBCLASS_OF_ID != 0x2d45687: # crc32(b'Peer')
|
if getattr(peer, 'SUBCLASS_OF_ID', 0) != 0x2d45687:
|
||||||
|
# 0x2d45687 == crc32(b'Peer')
|
||||||
return utils.get_input_peer(peer)
|
return utils.get_input_peer(peer)
|
||||||
except (AttributeError, TypeError):
|
except TypeError:
|
||||||
peer = None
|
peer = None
|
||||||
|
|
||||||
if not peer:
|
if not peer:
|
||||||
|
|
|
@ -91,6 +91,10 @@ def get_input_peer(entity, allow_self=True):
|
||||||
if entity.SUBCLASS_OF_ID == 0xc91c90b6: # crc32(b'InputPeer')
|
if entity.SUBCLASS_OF_ID == 0xc91c90b6: # crc32(b'InputPeer')
|
||||||
return entity
|
return entity
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
|
if hasattr(entity, 'input_entity'):
|
||||||
|
# e.g. custom.Dialog (can't cyclic import)
|
||||||
|
return entity.input_entity
|
||||||
|
else:
|
||||||
_raise_cast_fail(entity, 'InputPeer')
|
_raise_cast_fail(entity, 'InputPeer')
|
||||||
|
|
||||||
if isinstance(entity, User):
|
if isinstance(entity, User):
|
||||||
|
@ -105,7 +109,6 @@ def get_input_peer(entity, allow_self=True):
|
||||||
if isinstance(entity, (Channel, ChannelForbidden)):
|
if isinstance(entity, (Channel, ChannelForbidden)):
|
||||||
return InputPeerChannel(entity.id, entity.access_hash or 0)
|
return InputPeerChannel(entity.id, entity.access_hash or 0)
|
||||||
|
|
||||||
# Less common cases
|
|
||||||
if isinstance(entity, InputUser):
|
if isinstance(entity, InputUser):
|
||||||
return InputPeerUser(entity.user_id, entity.access_hash)
|
return InputPeerUser(entity.user_id, entity.access_hash)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user