From 339bfa62f52cd7801e1f5eec6e0661d8ad34e5c2 Mon Sep 17 00:00:00 2001 From: Ethan Olchik Date: Tue, 28 Sep 2021 15:30:20 +0100 Subject: [PATCH] add silent parameter to interaction.delete and webhookmessage.delete --- discord/interactions.py | 14 ++++++++++++-- discord/webhook/async_.py | 14 ++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/discord/interactions.py b/discord/interactions.py index 6261346b..9e2d2879 100644 --- a/discord/interactions.py +++ b/discord/interactions.py @@ -749,7 +749,7 @@ class InteractionMessage(Message): allowed_mentions=allowed_mentions, ) - async def delete(self, *, delay: Optional[float] = None) -> None: + async def delete(self, *, delay: Optional[float] = None, silent: bool = False) -> None: """|coro| Deletes the message. @@ -759,6 +759,12 @@ class InteractionMessage(Message): delay: Optional[:class:`float`] If provided, the number of seconds to wait before deleting the message. The waiting is done in the background and deletion failures are ignored. + + silent: :class:`bool` + If silent is set to ``True``, the error will not be raised, it will be ignored. + This defaults to ``False` + + .. versionadded:: 2.0 Raises ------ @@ -780,4 +786,8 @@ class InteractionMessage(Message): asyncio.create_task(inner_call()) else: - await self._state._interaction.delete_original_message(delay=delay) + try: + await self._state._interaction.delete_original_message(delay=delay) + except Exception: + if not silent: + raise diff --git a/discord/webhook/async_.py b/discord/webhook/async_.py index 85edefbf..41a75b51 100644 --- a/discord/webhook/async_.py +++ b/discord/webhook/async_.py @@ -717,7 +717,7 @@ class WebhookMessage(Message): allowed_mentions=allowed_mentions, ) - async def delete(self, *, delay: Optional[float] = None) -> None: + async def delete(self, *, delay: Optional[float] = None, silent: bool = False) -> None: """|coro| Deletes the message. @@ -727,6 +727,12 @@ class WebhookMessage(Message): delay: Optional[:class:`float`] If provided, the number of seconds to wait before deleting the message. The waiting is done in the background and deletion failures are ignored. + + silent: :class:`bool` + If silent is set to ``True``, the error will not be raised, it will be ignored. + This defaults to ``False` + + .. versionadded:: 2.0 Raises ------ @@ -748,7 +754,11 @@ class WebhookMessage(Message): asyncio.create_task(inner_call()) else: - await self._state._webhook.delete_message(self.id, delay) + try: + await self._state._webhook.delete_message(self.id, delay) + except Exception: + if not silent: + raise class BaseWebhook(Hashable):