aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2019-04-18 22:20:02 -0400
committerRapptz <[email protected]>2019-04-18 22:31:55 -0400
commiteb4de55f6d99f4f9d03f998dbabf6a04b91f2fc2 (patch)
tree9598f493f6858ff593e9459a6532019b18b9eab7
parentAdd abc.GuildChannel.clone to clone a channel with another name. (diff)
downloaddiscord.py-eb4de55f6d99f4f9d03f998dbabf6a04b91f2fc2.tar.xz
discord.py-eb4de55f6d99f4f9d03f998dbabf6a04b91f2fc2.zip
Add reason to TextChannel.create_webhook
The reason parameter does not work with webhook deletes or edits so they're not added. Probably a Discord bug.
-rw-r--r--discord/channel.py9
-rw-r--r--discord/http.py5
2 files changed, 10 insertions, 4 deletions
diff --git a/discord/channel.py b/discord/channel.py
index e3055f88..0d472a11 100644
--- a/discord/channel.py
+++ b/discord/channel.py
@@ -403,13 +403,16 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
data = await self._state.http.channel_webhooks(self.id)
return [Webhook.from_state(d, state=self._state) for d in data]
- async def create_webhook(self, *, name, avatar=None):
+ async def create_webhook(self, *, name, avatar=None, reason=None):
"""|coro|
Creates a webhook for this channel.
Requires :attr:`~.Permissions.manage_webhooks` permissions.
+ .. versionchanged:: 1.1.0
+ Added the ``reason`` keyword-only parameter.
+
Parameters
-------------
name: :class:`str`
@@ -417,6 +420,8 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
avatar: Optional[:class:`bytes`]
A :term:`py:bytes-like object` representing the webhook's default avatar.
This operates similarly to :meth:`~ClientUser.edit`.
+ reason: Optional[:class:`str`]
+ The reason for creating this webhook. Shows up in the audit logs.
Raises
-------
@@ -434,7 +439,7 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
if avatar is not None:
avatar = utils._bytes_to_base64_data(avatar)
- data = await self._state.http.create_webhook(self.id, name=str(name), avatar=avatar)
+ data = await self._state.http.create_webhook(self.id, name=str(name), avatar=avatar, reason=reason)
return Webhook.from_state(data, state=self._state)
class VoiceChannel(discord.abc.Connectable, discord.abc.GuildChannel, Hashable):
diff --git a/discord/http.py b/discord/http.py
index 36de7dba..85062e2d 100644
--- a/discord/http.py
+++ b/discord/http.py
@@ -537,14 +537,15 @@ class HTTPClient:
# Webhook management
- def create_webhook(self, channel_id, *, name, avatar=None):
+ def create_webhook(self, channel_id, *, name, avatar=None, reason=None):
payload = {
'name': name
}
if avatar is not None:
payload['avatar'] = avatar
- return self.request(Route('POST', '/channels/{channel_id}/webhooks', channel_id=channel_id), json=payload)
+ r = Route('POST', '/channels/{channel_id}/webhooks', channel_id=channel_id)
+ return self.request(r, json=payload, reason=reason)
def channel_webhooks(self, channel_id):
return self.request(Route('GET', '/channels/{channel_id}/webhooks', channel_id=channel_id))