From 83f13da420f0f581234d66dd3f5f91fd8f8fa3e3 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Sun, 27 Nov 2022 11:22:30 +0100 Subject: [PATCH] Don't error when calling disconnect after logout --- telethon/client/auth.py | 1 + telethon/client/telegrambaseclient.py | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/telethon/client/auth.py b/telethon/client/auth.py index f10a3f65..170b626a 100644 --- a/telethon/client/auth.py +++ b/telethon/client/auth.py @@ -620,6 +620,7 @@ class AuthMethods: await self.disconnect() self.session.delete() + self.session = None return True async def edit_2fa( diff --git a/telethon/client/telegrambaseclient.py b/telethon/client/telegrambaseclient.py index 28e4485b..23708151 100644 --- a/telethon/client/telegrambaseclient.py +++ b/telethon/client/telegrambaseclient.py @@ -523,6 +523,9 @@ class TelegramBaseClient(abc.ABC): except OSError: print('Failed to connect') """ + if self.session is None: + raise ValueError('TelegramClient instance cannot be reused after logging out') + if not await self._sender.connect(self._connection( self.session.server_address, self.session.port, @@ -603,6 +606,9 @@ class TelegramBaseClient(abc.ABC): # You don't need to use this if you used "with client" await client.disconnect() """ + if self.session is None: + return # already logged out and disconnected + if self.loop.is_running(): # Disconnect may be called from an event handler, which would # cancel itself during itself and never actually complete the