diff --git a/discord/iterators.py b/discord/iterators.py index d190433c5..1a2dc1b22 100644 --- a/discord/iterators.py +++ b/discord/iterators.py @@ -416,22 +416,25 @@ class AuditLogIterator(_AsyncIterator): before = self.before.id if self.before else None data = yield from self.request(self.guild.id, limit=retrieve, user_id=self.user_id, 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: self.limit -= retrieve - self.before = Object(id=int(data['audit_log_entries'][-1]['id'])) - return data + self.before = Object(id=int(entries[-1]['id'])) + return data.get('users', []), entries @asyncio.coroutine def _after_strategy(self, retrieve): after = self.after.id if self.after else None data = yield from self.request(self.guild.id, limit=retrieve, user_id=self.user_id, 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: self.limit -= retrieve - self.after = Object(id=int(data['audit_log_entries'][0]['id'])) - return data + self.after = Object(id=int(entries[0]['id'])) + return data.get('users', []), entries @asyncio.coroutine def get(self): @@ -460,10 +463,7 @@ class AuditLogIterator(_AsyncIterator): from .user import User if self._get_retrieve(): - data = yield from self._strategy(self.retrieve) - users = data.get('users', []) - data = data.get('audit_log_entries', []) - + users, data = yield from self._strategy(self.retrieve) if self.limit is None and len(data) < 100: self.limit = 0 # terminate the infinite loop