diff options
| author | Rapptz <[email protected]> | 2019-04-18 22:20:02 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2019-04-18 22:31:55 -0400 |
| commit | eb4de55f6d99f4f9d03f998dbabf6a04b91f2fc2 (patch) | |
| tree | 9598f493f6858ff593e9459a6532019b18b9eab7 | |
| parent | Add abc.GuildChannel.clone to clone a channel with another name. (diff) | |
| download | discord.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.py | 9 | ||||
| -rw-r--r-- | discord/http.py | 5 |
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)) |