From 158ac6bb50a23892afb17c737f56f297d662fe07 Mon Sep 17 00:00:00 2001 From: khazhyk Date: Sun, 16 Oct 2016 17:41:11 -0700 Subject: Add around parameter to LogsFromIterator. --- discord/client.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'discord/client.py') diff --git a/discord/client.py b/discord/client.py index dbd40e39..c3594638 100644 --- a/discord/client.py +++ b/discord/client.py @@ -978,7 +978,7 @@ class Client: yield from self.http.delete_messages(channel.id, message_ids, guild_id) @asyncio.coroutine - def purge_from(self, channel, *, limit=100, check=None, before=None, after=None): + def purge_from(self, channel, *, limit=100, check=None, before=None, after=None, around=None): """|coro| Purges a list of messages that meet the criteria given by the predicate @@ -1007,6 +1007,9 @@ class Client: after : :class:`Message` or `datetime` The message or date after which all deleted messages must be. If a date is provided it must be a timezone-naive datetime representing UTC time. + around : :class:`Message` or `datetime` + The message or date around which all deleted messages must be. + If a date is provided it must be a timezone-naive datetime representing UTC time. Raises ------- @@ -1040,8 +1043,10 @@ class Client: before = Object(utils.time_snowflake(before, high=False)) if isinstance(after, datetime.datetime): after = Object(utils.time_snowflake(after, high=True)) + if isinstance(around, datetime.datetime): + around = Object(utils.time_snowflake(around, high=True)) - iterator = LogsFromIterator(self, channel, limit, before=before, after=after) + iterator = LogsFromIterator(self, channel, limit, before=before, after=after, around=around) ret = [] count = 0 @@ -1209,7 +1214,7 @@ class Client: data = yield from self.http.pins_from(channel.id) return [Message(channel=channel, **m) for m in data] - def _logs_from(self, channel, limit=100, before=None, after=None): + def _logs_from(self, channel, limit=100, before=None, after=None, around=None): """|coro| This coroutine returns a generator that obtains logs from a specified channel. @@ -1226,6 +1231,9 @@ class Client: after : :class:`Message` or `datetime` The message or date after which all returned messages must be. If a date is provided it must be a timezone-naive datetime representing UTC time. + around : :class:`Message` or `datetime` + The message or date around which all returned messages must be. + If a date is provided it must be a timezone-naive datetime representing UTC time. Raises ------ @@ -1261,17 +1269,20 @@ class Client: """ before = getattr(before, 'id', None) after = getattr(after, 'id', None) + around = getattr(around, 'id', None) - return self.http.logs_from(channel.id, limit, before=before, after=after) + return self.http.logs_from(channel.id, limit, before=before, after=after, around=around) if PY35: - def logs_from(self, channel, limit=100, *, before=None, after=None, reverse=False): + def logs_from(self, channel, limit=100, *, before=None, after=None, around=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)) + if isinstance(around, datetime.datetime): + around = Object(utils.time_snowflake(around)) - return LogsFromIterator(self, channel, limit, before=before, after=after, reverse=reverse) + return LogsFromIterator(self, channel, limit, before=before, after=after, around=around, reverse=reverse) else: @asyncio.coroutine def logs_from(self, channel, limit=100, *, before=None, after=None): -- cgit v1.2.3