aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2017-05-07 21:04:43 -0400
committerRapptz <[email protected]>2017-05-07 21:04:43 -0400
commit152fc895087294916cdf8392916c5417790d8f04 (patch)
treeb91903e5dde05fd549077146e0f2822e893ac5ff
parentMake AuditLogDiff.roles an empty list instead of None. (diff)
downloaddiscord.py-152fc895087294916cdf8392916c5417790d8f04.tar.xz
discord.py-152fc895087294916cdf8392916c5417790d8f04.zip
Properly check for audit log entry termination.
-rw-r--r--discord/iterators.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/discord/iterators.py b/discord/iterators.py
index d190433c..1a2dc1b2 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