aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2021-05-05 21:15:24 -0400
committerRapptz <[email protected]>2021-06-08 07:29:15 -0400
commit92ee2cd598daf43ffaff29c38858f2b215409a7f (patch)
treead309668063639a41983ca1b058e5378b29d4ea1
parentAdd TextChannel.active_threads (diff)
downloaddiscord.py-92ee2cd598daf43ffaff29c38858f2b215409a7f.tar.xz
discord.py-92ee2cd598daf43ffaff29c38858f2b215409a7f.zip
Add support for thread parameter in Webhook.send
-rw-r--r--discord/webhook/async_.py19
-rw-r--r--discord/webhook/sync.py13
2 files changed, 32 insertions, 0 deletions
diff --git a/discord/webhook/async_.py b/discord/webhook/async_.py
index d73ab0ea..7486415c 100644
--- a/discord/webhook/async_.py
+++ b/discord/webhook/async_.py
@@ -253,9 +253,12 @@ class AsyncWebhookAdapter:
payload: Optional[Dict[str, Any]] = None,
multipart: Optional[List[Dict[str, Any]]] = None,
files: Optional[List[File]] = None,
+ thread_id: Optional[int] = None,
wait: bool = False,
):
params = {'wait': int(wait)}
+ if thread_id:
+ params['thread_id'] = thread_id
route = Route('POST', '/webhooks/{webhook_id}/{webhook_token}', webhook_id=webhook_id, webhook_token=token)
return self.request(route, session, payload=payload, multipart=multipart, files=files, params=params)
@@ -1162,6 +1165,7 @@ class Webhook(BaseWebhook):
embeds: List[Embed] = MISSING,
allowed_mentions: AllowedMentions = MISSING,
view: View = MISSING,
+ thread: Snowflake = MISSING,
wait: Literal[True],
) -> WebhookMessage:
...
@@ -1181,6 +1185,7 @@ class Webhook(BaseWebhook):
embeds: List[Embed] = MISSING,
allowed_mentions: AllowedMentions = MISSING,
view: View = MISSING,
+ thread: Snowflake = MISSING,
wait: Literal[False] = ...,
) -> None:
...
@@ -1199,6 +1204,7 @@ class Webhook(BaseWebhook):
embeds: List[Embed] = MISSING,
allowed_mentions: AllowedMentions = MISSING,
view: View = MISSING,
+ thread: Snowflake = MISSING,
wait: bool = False,
) -> Optional[WebhookMessage]:
"""|coro|
@@ -1249,12 +1255,20 @@ class Webhook(BaseWebhook):
be mixed with the ``embed`` parameter.
allowed_mentions: :class:`AllowedMentions`
Controls the mentions being processed in this message.
+
+ .. versionadded:: 1.4
view: :class:`discord.ui.View`
The view to send with the message. You can only send a view
if this webhook is not partial and has state attached. A
webhook has state attached if the webhook is managed by the
library.
+ .. versionadded:: 2.0
+ thread: :class:`~discord.abc.Snowflake`
+ The thread to send this webhook to.
+
+ .. versionadded:: 2.0
+
Raises
--------
HTTPException
@@ -1313,6 +1327,10 @@ class Webhook(BaseWebhook):
previous_allowed_mentions=previous_mentions,
)
adapter = async_context.get()
+ thread_id: Optional[int] = None
+ if thread is not MISSING:
+ thread_id = thread.id
+
data = await adapter.execute_webhook(
self.id,
self.token,
@@ -1320,6 +1338,7 @@ class Webhook(BaseWebhook):
payload=params.payload,
multipart=params.multipart,
files=params.files,
+ thread_id=thread_id,
wait=wait,
)
diff --git a/discord/webhook/sync.py b/discord/webhook/sync.py
index 2ad7b753..2d1557f5 100644
--- a/discord/webhook/sync.py
+++ b/discord/webhook/sync.py
@@ -262,9 +262,12 @@ class WebhookAdapter:
payload: Optional[Dict[str, Any]] = None,
multipart: Optional[List[Dict[str, Any]]] = None,
files: Optional[List[File]] = None,
+ thread_id: Optional[int] = None,
wait: bool = False,
):
params = {'wait': int(wait)}
+ if thread_id:
+ params['thread_id'] = thread_id
route = Route('POST', '/webhooks/{webhook_id}/{webhook_token}', webhook_id=webhook_id, webhook_token=token)
return self.request(route, session, payload=payload, multipart=multipart, files=files, params=params)
@@ -780,6 +783,7 @@ class SyncWebhook(BaseWebhook):
embed: Embed = MISSING,
embeds: List[Embed] = MISSING,
allowed_mentions: AllowedMentions = MISSING,
+ thread: Snowflake = MISSING,
wait: bool = False,
) -> Optional[SyncWebhookMessage]:
"""Sends a message using the webhook.
@@ -824,6 +828,10 @@ class SyncWebhook(BaseWebhook):
Controls the mentions being processed in this message.
.. versionadded:: 1.4
+ thread: :class:`~discord.abc.Snowflake`
+ The thread to send this message to.
+
+ .. versionadded:: 2.0
Raises
--------
@@ -866,6 +874,10 @@ class SyncWebhook(BaseWebhook):
previous_allowed_mentions=previous_mentions,
)
adapter: WebhookAdapter = _context.adapter
+ thread_id: Optional[int] = None
+ if thread is not MISSING:
+ thread_id = thread.id
+
data = adapter.execute_webhook(
self.id,
self.token,
@@ -873,6 +885,7 @@ class SyncWebhook(BaseWebhook):
payload=params.payload,
multipart=params.multipart,
files=params.files,
+ thread_id=thread_id,
wait=wait,
)
if wait: