From cfa5cd0db2948c044b6c154c387a53c7adc6dbe5 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Thu, 21 Jun 2018 09:32:09 +0200 Subject: [PATCH] Fix is_user_authorized always returning True --- telethon/client/telegrambaseclient.py | 5 ++++- telethon/client/users.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/telethon/client/telegrambaseclient.py b/telethon/client/telegrambaseclient.py index 986ee7ba..c083af27 100644 --- a/telethon/client/telegrambaseclient.py +++ b/telethon/client/telegrambaseclient.py @@ -222,7 +222,10 @@ class TelegramBaseClient(abc.ABC): self._updates_handle = None self._last_request = time.time() self._channel_pts = {} - self._state = types.updates.State(0, 0, datetime.now(), 0, -1) + + # Start with invalid state (-1) so we can have somewhere to store + # the state, but also be able to determine if we are authorized. + self._state = types.updates.State(-1, 0, datetime.now(), 0, -1) # Some further state for subclasses self._event_builders = [] diff --git a/telethon/client/users.py b/telethon/client/users.py index e53760e4..3dc4144d 100644 --- a/telethon/client/users.py +++ b/telethon/client/users.py @@ -90,7 +90,7 @@ class UserMethods(TelegramBaseClient): """ Returns ``True`` if the user is authorized. """ - if self._self_input_peer is not None or self._state is not None: + if self._self_input_peer is not None or self._state.pts != -1: return True try: