Add support for thread parameter in Webhook.send
This commit is contained in:
parent
4b51e3e253
commit
92ee2cd598
@ -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,
|
||||
)
|
||||
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user