aboutsummaryrefslogtreecommitdiff
path: root/discord/client.py
diff options
context:
space:
mode:
authorKhazhismel Kumykov <[email protected]>2016-05-18 17:34:17 -0400
committerRapptz <[email protected]>2016-05-20 18:11:57 -0400
commit492c9afffb3e8a4aaa438e0db0cbb525411c3630 (patch)
tree2bed23c963b3927bf801b910c01f484820ec9ed2 /discord/client.py
parentAllow datetime in limit parameters for logs_from. (diff)
downloaddiscord.py-492c9afffb3e8a4aaa438e0db0cbb525411c3630.tar.xz
discord.py-492c9afffb3e8a4aaa438e0db0cbb525411c3630.zip
logs_from improvements for after param.
- Properly support 'after' alone - Properly support both 'before' and 'after' - Add optional 'reverse' parameter to sort messages oldest->newest to 1) provide a sorted result set for 'after' 2) give flexibility when using both 'before' and 'after'
Diffstat (limited to 'discord/client.py')
-rw-r--r--discord/client.py24
1 files changed, 14 insertions, 10 deletions
diff --git a/discord/client.py b/discord/client.py
index 688e76e4..8f7a6416 100644
--- a/discord/client.py
+++ b/discord/client.py
@@ -1213,15 +1213,9 @@ class Client:
}
if before:
- if isinstance(before, datetime.datetime):
- params['before'] = utils.time_snowflake(before, high=False)
- else:
- params['before'] = before.id
+ params['before'] = before.id
if after:
- if isinstance(after, datetime.datetime):
- params['after'] = utils.time_snowflake(after, high=True)
- else:
- params['after'] = after.id
+ params['after'] = after.id
response = yield from self.session.get(url, params=params, headers=self.headers)
log.debug(request_logging_format.format(method='GET', response=response))
@@ -1230,11 +1224,21 @@ class Client:
return messages
if PY35:
- def logs_from(self, channel, limit=100, *, before=None, after=None):
- return LogsFromIterator(self, channel, limit, before, after)
+ def logs_from(self, channel, limit=100, *, before=None, after=None, reverse=False):
+ if isinstance(before, datetime.datetime):
+ before = Object(utils.time_snowflake(before, high=False))
+ if isinstance(after, datetime.datetime):
+ after = Object(utils.time_snowflake(after, high=True))
+
+ return LogsFromIterator.create(self, channel, limit, before=before, after=after, reverse=reverse)
else:
@asyncio.coroutine
def logs_from(self, channel, limit=100, *, before=None, after=None):
+ if isinstance(before, datetime.datetime):
+ before = Object(utils.time_snowflake(before, high=False))
+ if isinstance(after, datetime.datetime):
+ after = Object(utils.time_snowflake(after, high=True))
+
def generator(data):
for message in data:
yield Message(channel=channel, **message)