mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-04-21 00:07:51 +00:00
Add Client.delete_messages for bulk delete.
This commit is contained in:
parent
cf2bee5c43
commit
1b601097d2
@ -977,6 +977,48 @@ class Client:
|
||||
yield from utils._verify_successful_response(response)
|
||||
yield from response.release()
|
||||
|
||||
@asyncio.coroutine
|
||||
def delete_messages(self, messages):
|
||||
"""|coro|
|
||||
|
||||
Deletes a list of messages. This is similar to :func:`delete_message`
|
||||
except it bulk deletes multiple messages.
|
||||
|
||||
The channel to check where the message is deleted from is handled via
|
||||
the first element of the iterable's ``.channel.id`` attributes. If the
|
||||
channel is not consistent throughout the entire sequence, then an
|
||||
:exc:`HTTPException` will be raised.
|
||||
|
||||
Parameters
|
||||
-----------
|
||||
messages : iterable of :class:`Message`
|
||||
An iterable of messages denoting which ones to bulk delete.
|
||||
|
||||
Raises
|
||||
------
|
||||
ClientException
|
||||
The number of messages to delete is less than 2 or more than 100.
|
||||
Forbidden
|
||||
You do not have proper permissions to delete the messages.
|
||||
HTTPException
|
||||
Deleting the messages failed.
|
||||
"""
|
||||
|
||||
messages = list(messages)
|
||||
if len(messages) > 100 or len(messages) < 2:
|
||||
raise ClientException('Can only delete messages in the range of [2, 100]')
|
||||
|
||||
channel_id = messages[0].channel.id
|
||||
url = '{0}/{1}/messages/bulk_delete'.format(endpoints.CHANNELS, channel_id)
|
||||
payload = {
|
||||
'messages': [m.id for m in messages]
|
||||
}
|
||||
|
||||
response = yield from self.session.post(url, headers=self.headers, data=utils.to_json(payload))
|
||||
log.debug(request_logging_format.format(method='POST', response=response))
|
||||
yield from utils._verify_successful_response(response)
|
||||
yield from response.release()
|
||||
|
||||
@asyncio.coroutine
|
||||
def edit_message(self, message, new_content):
|
||||
"""|coro|
|
||||
|
Loading…
x
Reference in New Issue
Block a user