Browse Source

Add the suppress_embeds parameter to send methods

Modified the following methods:

- abc.Messageable.send
- Webhook.send
- SyncWebhook.send
- InteractionResponse.send_message
pull/7514/head
Stocker 3 years ago
committed by GitHub
parent
commit
554d2d7c99
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      discord/abc.py
  2. 11
      discord/interactions.py
  3. 13
      discord/webhook/async_.py
  4. 15
      discord/webhook/sync.py

16
discord/abc.py

@ -1183,6 +1183,7 @@ class Messageable:
reference: Union[Message, MessageReference, PartialMessage] = ..., reference: Union[Message, MessageReference, PartialMessage] = ...,
mention_author: bool = ..., mention_author: bool = ...,
view: View = ..., view: View = ...,
suppress_embeds: bool = ...,
) -> Message: ) -> Message:
... ...
@ -1201,6 +1202,7 @@ class Messageable:
reference: Union[Message, MessageReference, PartialMessage] = ..., reference: Union[Message, MessageReference, PartialMessage] = ...,
mention_author: bool = ..., mention_author: bool = ...,
view: View = ..., view: View = ...,
suppress_embeds: bool = ...,
) -> Message: ) -> Message:
... ...
@ -1219,6 +1221,7 @@ class Messageable:
reference: Union[Message, MessageReference, PartialMessage] = ..., reference: Union[Message, MessageReference, PartialMessage] = ...,
mention_author: bool = ..., mention_author: bool = ...,
view: View = ..., view: View = ...,
suppress_embeds: bool = ...,
) -> Message: ) -> Message:
... ...
@ -1237,6 +1240,7 @@ class Messageable:
reference: Union[Message, MessageReference, PartialMessage] = ..., reference: Union[Message, MessageReference, PartialMessage] = ...,
mention_author: bool = ..., mention_author: bool = ...,
view: View = ..., view: View = ...,
suppress_embeds: bool = ...,
) -> Message: ) -> Message:
... ...
@ -1256,6 +1260,7 @@ class Messageable:
reference=None, reference=None,
mention_author=None, mention_author=None,
view=None, view=None,
suppress_embeds=False,
): ):
"""|coro| """|coro|
@ -1329,6 +1334,10 @@ class Messageable:
stickers: Sequence[Union[:class:`~discord.GuildSticker`, :class:`~discord.StickerItem`]] stickers: Sequence[Union[:class:`~discord.GuildSticker`, :class:`~discord.StickerItem`]]
A list of stickers to upload. Must be a maximum of 3. A list of stickers to upload. Must be a maximum of 3.
.. versionadded:: 2.0
suppress_embeds: :class:`bool`
Whether to suppress embeds for the message. This sends the message without any embeds if set to ``True``.
.. versionadded:: 2.0 .. versionadded:: 2.0
Raises Raises
@ -1372,6 +1381,12 @@ class Messageable:
if view and not hasattr(view, '__discord_ui_view__'): if view and not hasattr(view, '__discord_ui_view__'):
raise TypeError(f'view parameter must be View not {view.__class__!r}') raise TypeError(f'view parameter must be View not {view.__class__!r}')
if suppress_embeds:
from .message import MessageFlags # circualr import
flags = MessageFlags._from_value(4)
else:
flags = MISSING
with handle_message_parameters( with handle_message_parameters(
content=content, content=content,
tts=tts, tts=tts,
@ -1386,6 +1401,7 @@ class Messageable:
mention_author=mention_author, mention_author=mention_author,
stickers=stickers, stickers=stickers,
view=view, view=view,
flags=flags,
) as params: ) as params:
data = await state.http.send_message(channel.id, params=params) data = await state.http.send_message(channel.id, params=params)

11
discord/interactions.py

@ -494,6 +494,7 @@ class InteractionResponse:
tts: bool = False, tts: bool = False,
ephemeral: bool = False, ephemeral: bool = False,
allowed_mentions: AllowedMentions = MISSING, allowed_mentions: AllowedMentions = MISSING,
suppress_embeds: bool = False,
) -> None: ) -> None:
"""|coro| """|coro|
@ -524,6 +525,10 @@ class InteractionResponse:
allowed_mentions: :class:`~discord.AllowedMentions` allowed_mentions: :class:`~discord.AllowedMentions`
Controls the mentions being processed in this message. See :meth:`.abc.Messageable.send` for Controls the mentions being processed in this message. See :meth:`.abc.Messageable.send` for
more information. more information.
suppress_embeds: :class:`bool`
Whether to suppress embeds for the message. This sends the message without any embeds if set to ``True``.
.. versionadded:: 2.0
Raises Raises
------- -------
@ -539,8 +544,10 @@ class InteractionResponse:
if self._responded: if self._responded:
raise InteractionResponded(self._parent) raise InteractionResponded(self._parent)
if ephemeral: if ephemeral or suppress_embeds:
flags = MessageFlags._from_value(64) flags = MessageFlags._from_value(0)
flags.ephemeral = ephemeral
flags.suppress_embeds = suppress_embeds
else: else:
flags = MISSING flags = MISSING

13
discord/webhook/async_.py

@ -1310,6 +1310,7 @@ class Webhook(BaseWebhook):
view: View = MISSING, view: View = MISSING,
thread: Snowflake = MISSING, thread: Snowflake = MISSING,
wait: Literal[True], wait: Literal[True],
suppress_embeds: bool = MISSING,
) -> WebhookMessage: ) -> WebhookMessage:
... ...
@ -1330,6 +1331,7 @@ class Webhook(BaseWebhook):
view: View = MISSING, view: View = MISSING,
thread: Snowflake = MISSING, thread: Snowflake = MISSING,
wait: Literal[False] = ..., wait: Literal[False] = ...,
suppress_embeds: bool = MISSING,
) -> None: ) -> None:
... ...
@ -1349,6 +1351,7 @@ class Webhook(BaseWebhook):
view: View = MISSING, view: View = MISSING,
thread: Snowflake = MISSING, thread: Snowflake = MISSING,
wait: bool = False, wait: bool = False,
suppress_embeds: bool = False,
) -> Optional[WebhookMessage]: ) -> Optional[WebhookMessage]:
"""|coro| """|coro|
@ -1417,6 +1420,10 @@ class Webhook(BaseWebhook):
thread: :class:`~discord.abc.Snowflake` thread: :class:`~discord.abc.Snowflake`
The thread to send this webhook to. The thread to send this webhook to.
.. versionadded:: 2.0
suppress_embeds: :class:`bool`
Whether to suppress embeds for the message. This sends the message without any embeds if set to ``True``.
.. versionadded:: 2.0 .. versionadded:: 2.0
Raises Raises
@ -1447,8 +1454,10 @@ class Webhook(BaseWebhook):
previous_mentions: Optional[AllowedMentions] = getattr(self._state, 'allowed_mentions', None) previous_mentions: Optional[AllowedMentions] = getattr(self._state, 'allowed_mentions', None)
if content is None: if content is None:
content = MISSING content = MISSING
if ephemeral: if ephemeral or suppress_embeds:
flags = MessageFlags._from_value(64) flags = MessageFlags._from_value(0)
flags.ephemeral = ephemeral
flags.suppress_embeds = suppress_embeds
else: else:
flags = MISSING flags = MISSING

15
discord/webhook/sync.py

@ -42,7 +42,7 @@ import weakref
from .. import utils from .. import utils
from ..errors import HTTPException, Forbidden, NotFound, DiscordServerError from ..errors import HTTPException, Forbidden, NotFound, DiscordServerError
from ..message import Message from ..message import Message, MessageFlags
from ..http import Route, handle_message_parameters from ..http import Route, handle_message_parameters
from ..channel import PartialMessageable from ..channel import PartialMessageable
@ -833,6 +833,7 @@ class SyncWebhook(BaseWebhook):
embeds: List[Embed] = MISSING, embeds: List[Embed] = MISSING,
allowed_mentions: AllowedMentions = MISSING, allowed_mentions: AllowedMentions = MISSING,
wait: Literal[True], wait: Literal[True],
suppress_embeds: bool = MISSING,
) -> SyncWebhookMessage: ) -> SyncWebhookMessage:
... ...
@ -850,6 +851,7 @@ class SyncWebhook(BaseWebhook):
embeds: List[Embed] = MISSING, embeds: List[Embed] = MISSING,
allowed_mentions: AllowedMentions = MISSING, allowed_mentions: AllowedMentions = MISSING,
wait: Literal[False] = ..., wait: Literal[False] = ...,
suppress_embeds: bool = MISSING,
) -> None: ) -> None:
... ...
@ -867,6 +869,7 @@ class SyncWebhook(BaseWebhook):
allowed_mentions: AllowedMentions = MISSING, allowed_mentions: AllowedMentions = MISSING,
thread: Snowflake = MISSING, thread: Snowflake = MISSING,
wait: bool = False, wait: bool = False,
suppress_embeds: bool = False,
) -> Optional[SyncWebhookMessage]: ) -> Optional[SyncWebhookMessage]:
"""Sends a message using the webhook. """Sends a message using the webhook.
@ -914,6 +917,10 @@ class SyncWebhook(BaseWebhook):
thread: :class:`~discord.abc.Snowflake` thread: :class:`~discord.abc.Snowflake`
The thread to send this message to. The thread to send this message to.
.. versionadded:: 2.0
suppress_embeds: :class:`bool`
Whether to suppress embeds for the message. This sends the message without any embeds if set to ``True``.
.. versionadded:: 2.0 .. versionadded:: 2.0
Raises Raises
@ -943,6 +950,11 @@ class SyncWebhook(BaseWebhook):
if content is None: if content is None:
content = MISSING content = MISSING
if suppress_embeds:
flags = MessageFlags._from_value(4)
else:
flags = MISSING
params = handle_message_parameters( params = handle_message_parameters(
content=content, content=content,
username=username, username=username,
@ -954,6 +966,7 @@ class SyncWebhook(BaseWebhook):
embeds=embeds, embeds=embeds,
allowed_mentions=allowed_mentions, allowed_mentions=allowed_mentions,
previous_allowed_mentions=previous_mentions, previous_allowed_mentions=previous_mentions,
flags=flags,
) )
adapter: WebhookAdapter = _get_webhook_adapter() adapter: WebhookAdapter = _get_webhook_adapter()
thread_id: Optional[int] = None thread_id: Optional[int] = None

Loading…
Cancel
Save