From 2c85ffea1210c602a15776374656adea95dcd7a3 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Wed, 9 Nov 2022 16:12:17 +0100 Subject: [PATCH] Fix get_dialogs could fail when count % chunk_size = 0 Closes #3971. --- telethon/client/dialogs.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/telethon/client/dialogs.py b/telethon/client/dialogs.py index a2d86d11..b0db0a61 100644 --- a/telethon/client/dialogs.py +++ b/telethon/client/dialogs.py @@ -91,8 +91,9 @@ class _DialogsIter(RequestIter): cd.entity, 'migrated_to', None) is None: self.buffer.append(cd) - if len(r.dialogs) < self.request.limit\ + if not self.buffer or len(r.dialogs) < self.request.limit\ or not isinstance(r, types.messages.DialogsSlice): + # Buffer being empty means all returned dialogs were skipped (due to offsets). # Less than we requested means we reached the end, or # we didn't get a DialogsSlice which means we got all. return True