mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-07-09 23:52:20 +03:00
Don't include *Empty entities in returned dialogs
This commit is contained in:
parent
c924365e24
commit
9c87598950
|
@ -55,7 +55,8 @@ class _DialogsIter(RequestIter):
|
||||||
self.total = getattr(r, 'count', len(r.dialogs))
|
self.total = getattr(r, 'count', len(r.dialogs))
|
||||||
|
|
||||||
entities = {utils.get_peer_id(x): x
|
entities = {utils.get_peer_id(x): x
|
||||||
for x in itertools.chain(r.users, r.chats)}
|
for x in itertools.chain(r.users, r.chats)
|
||||||
|
if not isinstance(x, (types.UserEmpty, types.ChatEmpty))}
|
||||||
|
|
||||||
messages = {}
|
messages = {}
|
||||||
for m in r.messages:
|
for m in r.messages:
|
||||||
|
@ -73,6 +74,12 @@ class _DialogsIter(RequestIter):
|
||||||
peer_id = utils.get_peer_id(d.peer)
|
peer_id = utils.get_peer_id(d.peer)
|
||||||
if peer_id not in self.seen:
|
if peer_id not in self.seen:
|
||||||
self.seen.add(peer_id)
|
self.seen.add(peer_id)
|
||||||
|
if peer_id not in entities:
|
||||||
|
# > In which case can a UserEmpty appear in the list of banned members?
|
||||||
|
# > In a very rare cases. This is possible but isn't an expected behavior.
|
||||||
|
# Real world example: https://t.me/TelethonChat/271471
|
||||||
|
continue
|
||||||
|
|
||||||
cd = custom.Dialog(self.client, d, entities, message)
|
cd = custom.Dialog(self.client, d, entities, message)
|
||||||
if cd.dialog.pts:
|
if cd.dialog.pts:
|
||||||
self.client._channel_pts[cd.id] = cd.dialog.pts
|
self.client._channel_pts[cd.id] = cd.dialog.pts
|
||||||
|
@ -99,8 +106,7 @@ class _DialogsIter(RequestIter):
|
||||||
self.request.exclude_pinned = True
|
self.request.exclude_pinned = True
|
||||||
self.request.offset_id = last_message.id if last_message else 0
|
self.request.offset_id = last_message.id if last_message else 0
|
||||||
self.request.offset_date = last_message.date if last_message else None
|
self.request.offset_date = last_message.date if last_message else None
|
||||||
self.request.offset_peer =\
|
self.request.offset_peer = self.buffer[-1].input_entity
|
||||||
entities[utils.get_peer_id(r.dialogs[-1].peer)]
|
|
||||||
|
|
||||||
|
|
||||||
class _DraftsIter(RequestIter):
|
class _DraftsIter(RequestIter):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user