Properly check for audit log entry termination.
This commit is contained in:
parent
140be3e4c8
commit
152fc89508
@ -416,22 +416,25 @@ class AuditLogIterator(_AsyncIterator):
|
|||||||
before = self.before.id if self.before else None
|
before = self.before.id if self.before else None
|
||||||
data = yield from self.request(self.guild.id, limit=retrieve, user_id=self.user_id,
|
data = yield from self.request(self.guild.id, limit=retrieve, user_id=self.user_id,
|
||||||
action_type=self.action_type, before=before)
|
action_type=self.action_type, before=before)
|
||||||
if len(data):
|
|
||||||
|
entries = data.get('audit_log_entries', [])
|
||||||
|
if len(data) and entries:
|
||||||
if self.limit is not None:
|
if self.limit is not None:
|
||||||
self.limit -= retrieve
|
self.limit -= retrieve
|
||||||
self.before = Object(id=int(data['audit_log_entries'][-1]['id']))
|
self.before = Object(id=int(entries[-1]['id']))
|
||||||
return data
|
return data.get('users', []), entries
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def _after_strategy(self, retrieve):
|
def _after_strategy(self, retrieve):
|
||||||
after = self.after.id if self.after else None
|
after = self.after.id if self.after else None
|
||||||
data = yield from self.request(self.guild.id, limit=retrieve, user_id=self.user_id,
|
data = yield from self.request(self.guild.id, limit=retrieve, user_id=self.user_id,
|
||||||
action_type=self.action_type, after=after)
|
action_type=self.action_type, after=after)
|
||||||
if len(data):
|
entries = data.get('audit_log_entries', [])
|
||||||
|
if len(data) and entries:
|
||||||
if self.limit is not None:
|
if self.limit is not None:
|
||||||
self.limit -= retrieve
|
self.limit -= retrieve
|
||||||
self.after = Object(id=int(data['audit_log_entries'][0]['id']))
|
self.after = Object(id=int(entries[0]['id']))
|
||||||
return data
|
return data.get('users', []), entries
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def get(self):
|
def get(self):
|
||||||
@ -460,10 +463,7 @@ class AuditLogIterator(_AsyncIterator):
|
|||||||
from .user import User
|
from .user import User
|
||||||
|
|
||||||
if self._get_retrieve():
|
if self._get_retrieve():
|
||||||
data = yield from self._strategy(self.retrieve)
|
users, data = yield from self._strategy(self.retrieve)
|
||||||
users = data.get('users', [])
|
|
||||||
data = data.get('audit_log_entries', [])
|
|
||||||
|
|
||||||
if self.limit is None and len(data) < 100:
|
if self.limit is None and len(data) < 100:
|
||||||
self.limit = 0 # terminate the infinite loop
|
self.limit = 0 # terminate the infinite loop
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user