From a73a213bc37c610c4e051efe96e0e684105cfdc9 Mon Sep 17 00:00:00 2001 From: Malgnor Date: Mon, 10 Feb 2025 07:56:07 -0300 Subject: [PATCH] fix support for threads on edit and delete --- discord_webhook/async_webhook.py | 16 ++++++++++++---- discord_webhook/webhook.py | 18 +++++++++++++++--- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/discord_webhook/async_webhook.py b/discord_webhook/async_webhook.py index d66bc73..0d50ab9 100644 --- a/discord_webhook/async_webhook.py +++ b/discord_webhook/async_webhook.py @@ -136,12 +136,16 @@ async def edit(self) -> "httpx.Response": if bool(self.files) is False: patch_kwargs = { "json": self.json, - "params": {"wait": True}, + "params": self._query_params, "timeout": self.timeout, } else: self.files["payload_json"] = (None, json.dumps(self.json)) - patch_kwargs = {"files": self.files, "timeout": self.timeout} + patch_kwargs = { + "files": self.files, + "timeout": self.timeout, + "params": self._query_params + } request = partial(client.patch, url, **patch_kwargs) response = await request() if response.status_code in [200, 204]: @@ -171,7 +175,11 @@ async def delete(self) -> "httpx.Response": ), "Webhook URL needs to be set in order to delete the webhook." url = f"{self.url}/messages/{self.id}" async with self.http_client as client: # type: httpx.AsyncClient - response = await client.delete(url, timeout=self.timeout) + response = await client.delete( + url, + timeout=self.timeout, + params=self._query_params + ) if response.status_code in [200, 204]: logger.debug("Webhook deleted") else: @@ -181,4 +189,4 @@ async def delete(self) -> "httpx.Response": content=response.content.decode("utf-8"), ) ) - return response + return response \ No newline at end of file diff --git a/discord_webhook/webhook.py b/discord_webhook/webhook.py index 7b1ff06..c788a63 100644 --- a/discord_webhook/webhook.py +++ b/discord_webhook/webhook.py @@ -482,7 +482,7 @@ def edit(self) -> "requests.Response": url, json=self.json, proxies=self.proxies, - params={"wait": True}, + params=self._query_params, timeout=self.timeout, ) else: @@ -492,6 +492,7 @@ def edit(self) -> "requests.Response": url, files=self.files, proxies=self.proxies, + params=self._query_params, timeout=self.timeout, ) response = request() @@ -522,7 +523,11 @@ def delete(self) -> "requests.Response": ), "Webhook URL needs to be set in order to delete the webhook." url = f"{self.url}/messages/{self.id}" request = partial( - requests.delete, url, proxies=self.proxies, timeout=self.timeout + requests.delete, + url, + proxies=self.proxies, + timeout=self.timeout, + params=self._query_params ) response = request() if response.status_code in [200, 204]: @@ -530,6 +535,13 @@ def delete(self) -> "requests.Response": elif response.status_code == 429 and self.rate_limit_retry: response = self.handle_rate_limit(response, request) logger.debug("Webhook edited") + else: + logger.error( + "Webhook status code {status_code}: {content}".format( + status_code=response.status_code, + content=response.content.decode("utf-8"), + ) + ) return response @classmethod @@ -542,4 +554,4 @@ def create_batch(cls, urls: List[str], **kwargs) -> Tuple["DiscordWebhook", ...] """ if "url" in kwargs: raise TypeError("'url' can't be used as a keyword argument.") - return tuple([cls(url, **kwargs) for url in urls]) + return tuple([cls(url, **kwargs) for url in urls]) \ No newline at end of file