mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-04-21 08:17:47 +00:00
logs_from now works again with limit > 100.
This commit is contained in:
parent
f55d82146e
commit
b5c57fc399
@ -938,6 +938,24 @@ class Client:
|
||||
log.debug(request_success_log.format(response=response, json=payload, data=data))
|
||||
return Message(channel=channel, **data)
|
||||
|
||||
@asyncio.coroutine
|
||||
def _logs_from(self, channel, limit=100, before=None, after=None):
|
||||
url = '{}/{}/messages'.format(endpoints.CHANNELS, channel.id)
|
||||
params = {
|
||||
'limit': limit
|
||||
}
|
||||
|
||||
if before:
|
||||
params['before'] = before.id
|
||||
if after:
|
||||
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))
|
||||
yield from utils._verify_successful_response(response)
|
||||
messages = yield from response.json()
|
||||
return messages
|
||||
|
||||
@asyncio.coroutine
|
||||
def logs_from(self, channel, limit=100, *, before=None, after=None):
|
||||
"""|coro|
|
||||
@ -981,25 +999,20 @@ class Client:
|
||||
yield from client.edit_message(message, 'goodbye')
|
||||
"""
|
||||
|
||||
def generator_wrapper(data):
|
||||
def generator(data):
|
||||
for message in data:
|
||||
yield Message(channel=channel, **message)
|
||||
|
||||
url = '{}/{}/messages'.format(endpoints.CHANNELS, channel.id)
|
||||
params = {
|
||||
'limit': limit
|
||||
}
|
||||
result = []
|
||||
while limit > 0:
|
||||
retrieve = limit if limit <= 100 else 100
|
||||
data = yield from self._logs_from(channel, retrieve, before, after)
|
||||
limit -= retrieve
|
||||
result.extend(data)
|
||||
before = Object(id=data[-1]['id'])
|
||||
|
||||
if before:
|
||||
params['before'] = before.id
|
||||
if after:
|
||||
params['after'] = after.id
|
||||
return generator(result)
|
||||
|
||||
response = yield from self.session.get(url, params=params, headers=self.headers)
|
||||
log.debug(request_logging_format.format(method='GET', response=response))
|
||||
yield from utils._verify_successful_response(response)
|
||||
messages = yield from response.json()
|
||||
return generator_wrapper(messages)
|
||||
|
||||
# Member management
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user