From b263536ab889b857d55000ea3cc89fcb126ebd61 Mon Sep 17 00:00:00 2001 From: Kacnep89 <76146578+Kacnep89@users.noreply.github.com> Date: Tue, 28 Mar 2023 09:45:58 +0500 Subject: [PATCH] Add channel state only if channel exist in entities (Correcting the situation when the channel was not written to entities, because it came in the form of min, and state was written and the next time it was turned on with the catch_up parameter, the script did not run) --- telethon/client/telegrambaseclient.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/telethon/client/telegrambaseclient.py b/telethon/client/telegrambaseclient.py index 54c02a16..32790334 100644 --- a/telethon/client/telegrambaseclient.py +++ b/telethon/client/telegrambaseclient.py @@ -664,8 +664,10 @@ class TelegramBaseClient(abc.ABC): ss, cs = self._message_box.session_state() self.session.set_update_state(0, types.updates.State(**ss, unread_count=0)) now = datetime.datetime.now() # any datetime works; channels don't need it + entities_ids = [e.id for e in entities] for channel_id, pts in cs.items(): - self.session.set_update_state(channel_id, types.updates.State(pts, 0, now, 0, unread_count=0)) + if channel_id in entities_ids: + self.session.set_update_state(channel_id, types.updates.State(pts, 0, now, 0, unread_count=0)) async def _disconnect_coro(self: 'TelegramClient'): if self.session is None: