mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-03-03 10:45:52 +03:00
Fix iter_participants in non-channels
This commit is contained in:
parent
4cc2a17765
commit
6799295115
|
@ -35,6 +35,9 @@ class _ParticipantsIter(RequestIter):
|
|||
else:
|
||||
self.filter_entity = lambda ent: True
|
||||
|
||||
# Only used for channels, but we should always set the attribute
|
||||
self.requests = []
|
||||
|
||||
if isinstance(entity, types.InputPeerChannel):
|
||||
self.total = (await self.client(
|
||||
functions.channels.GetFullChannelRequest(entity)
|
||||
|
@ -45,21 +48,21 @@ class _ParticipantsIter(RequestIter):
|
|||
|
||||
self.seen = set()
|
||||
if aggressive and not filter:
|
||||
self.requests = [functions.channels.GetParticipantsRequest(
|
||||
self.requests.extend(functions.channels.GetParticipantsRequest(
|
||||
channel=entity,
|
||||
filter=types.ChannelParticipantsSearch(x),
|
||||
offset=0,
|
||||
limit=_MAX_PARTICIPANTS_CHUNK_SIZE,
|
||||
hash=0
|
||||
) for x in (search or string.ascii_lowercase)]
|
||||
) for x in (search or string.ascii_lowercase))
|
||||
else:
|
||||
self.requests = [functions.channels.GetParticipantsRequest(
|
||||
self.requests.append(functions.channels.GetParticipantsRequest(
|
||||
channel=entity,
|
||||
filter=filter or types.ChannelParticipantsSearch(search),
|
||||
offset=0,
|
||||
limit=_MAX_PARTICIPANTS_CHUNK_SIZE,
|
||||
hash=0
|
||||
)]
|
||||
))
|
||||
|
||||
elif isinstance(entity, types.InputPeerChat):
|
||||
full = await self.client(
|
||||
|
|
|
@ -47,13 +47,16 @@ class RequestIter(abc.ABC):
|
|||
|
||||
This method may ``raise StopAsyncIteration`` if it cannot continue.
|
||||
|
||||
This method may actually fill the initial buffer if it needs to.
|
||||
This method may actually fill the initial buffer if it needs to,
|
||||
and similarly to `_load_next_chunk`, ``return True`` to indicate
|
||||
that this is the last iteration (just the initial load).
|
||||
"""
|
||||
|
||||
async def __anext__(self):
|
||||
if self.buffer is None:
|
||||
self.buffer = []
|
||||
await self._init(**self.kwargs)
|
||||
if await self._init(**self.kwargs):
|
||||
self.left = len(self.buffer)
|
||||
|
||||
if self.left <= 0: # <= 0 because subclasses may change it
|
||||
raise StopAsyncIteration
|
||||
|
|
Loading…
Reference in New Issue
Block a user