Correctly emulate old to_id behaviour

This commit is contained in:
Lonami Exo
2020-10-02 10:23:04 +02:00
parent e24c49f5be
commit 4321153b06
3 changed files with 18 additions and 10 deletions

View File

@@ -616,15 +616,8 @@ class EventBuilderDict:
try:
return self.__dict__[builder]
except KeyError:
# Updates may arrive before login (like updateLoginToken) and we
# won't have our self ID yet (anyway only new messages need it).
self_id = (
self.client._self_input_peer.user_id
if self.client._self_input_peer
else None
)
event = self.__dict__[builder] = builder.build(
self.update, self.others, self_id)
self.update, self.others, self.client._self_id)
if isinstance(event, EventCommon):
event.original_update = self.update

View File

@@ -164,6 +164,16 @@ class UserMethods:
except errors.UnauthorizedError:
return None
@property
def _self_id(self: 'TelegramClient') -> typing.Optional[int]:
"""
Returns the ID of the logged-in user, if known.
This property is used in every update, and some like `updateLoginToken`
occur prior to login, so it gracefully handles when no ID is known yet.
"""
return self._self_input_peer.user_id if self._self_input_peer else None
async def is_bot(self: 'TelegramClient') -> bool:
"""
Return `True` if the signed-in user is a bot, `False` otherwise.