diff options
| author | Khazhismel Kumykov <[email protected]> | 2016-05-18 17:34:17 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2016-05-20 18:11:57 -0400 |
| commit | 492c9afffb3e8a4aaa438e0db0cbb525411c3630 (patch) | |
| tree | 2bed23c963b3927bf801b910c01f484820ec9ed2 /discord/client.py | |
| parent | Allow datetime in limit parameters for logs_from. (diff) | |
| download | discord.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.py | 24 |
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) |