mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-12-03 14:02:19 +00:00
Add support for editing message attachments
This commit is contained in:
@@ -259,8 +259,7 @@ class Interaction:
|
||||
content: Optional[str] = MISSING,
|
||||
embeds: List[Embed] = MISSING,
|
||||
embed: Optional[Embed] = MISSING,
|
||||
file: File = MISSING,
|
||||
files: List[File] = MISSING,
|
||||
attachments: List[Union[Attachment, File]] = MISSING,
|
||||
view: Optional[View] = MISSING,
|
||||
allowed_mentions: Optional[AllowedMentions] = None,
|
||||
) -> InteractionMessage:
|
||||
@@ -283,11 +282,14 @@ class Interaction:
|
||||
embed: Optional[:class:`Embed`]
|
||||
The embed to edit the message with. ``None`` suppresses the embeds.
|
||||
This should not be mixed with the ``embeds`` parameter.
|
||||
file: :class:`File`
|
||||
The file to upload. This cannot be mixed with ``files`` parameter.
|
||||
files: List[:class:`File`]
|
||||
A list of files to send with the content. This cannot be mixed with the
|
||||
``file`` parameter.
|
||||
attachments: List[Union[:class:`Attachment`, :class:`File`]]
|
||||
A list of attachments to keep in the message as well as new files to upload. If ``[]`` is passed
|
||||
then all attachments are removed.
|
||||
|
||||
.. note::
|
||||
|
||||
New files will always appear after current attachments.
|
||||
|
||||
allowed_mentions: :class:`AllowedMentions`
|
||||
Controls the mentions being processed in this message.
|
||||
See :meth:`.abc.Messageable.send` for more information.
|
||||
@@ -302,7 +304,7 @@ class Interaction:
|
||||
Forbidden
|
||||
Edited a message that is not yours.
|
||||
TypeError
|
||||
You specified both ``embed`` and ``embeds`` or ``file`` and ``files``
|
||||
You specified both ``embed`` and ``embeds``
|
||||
ValueError
|
||||
The length of ``embeds`` was invalid.
|
||||
|
||||
@@ -315,8 +317,7 @@ class Interaction:
|
||||
previous_mentions: Optional[AllowedMentions] = self._state.allowed_mentions
|
||||
params = handle_message_parameters(
|
||||
content=content,
|
||||
file=file,
|
||||
files=files,
|
||||
attachments=attachments,
|
||||
embed=embed,
|
||||
embeds=embeds,
|
||||
view=view,
|
||||
@@ -549,7 +550,7 @@ class InteractionResponse:
|
||||
content: Optional[Any] = MISSING,
|
||||
embed: Optional[Embed] = MISSING,
|
||||
embeds: List[Embed] = MISSING,
|
||||
attachments: List[Attachment] = MISSING,
|
||||
attachments: List[Union[Attachment, File]] = MISSING,
|
||||
view: Optional[View] = MISSING,
|
||||
allowed_mentions: Optional[AllowedMentions] = MISSING,
|
||||
) -> None:
|
||||
@@ -567,9 +568,14 @@ class InteractionResponse:
|
||||
embed: Optional[:class:`Embed`]
|
||||
The embed to edit the message with. ``None`` suppresses the embeds.
|
||||
This should not be mixed with the ``embeds`` parameter.
|
||||
attachments: List[:class:`Attachment`]
|
||||
A list of attachments to keep in the message. If ``[]`` is passed
|
||||
attachments: List[Union[:class:`Attachment`, :class:`File`]]
|
||||
A list of attachments to keep in the message as well as new files to upload. If ``[]`` is passed
|
||||
then all attachments are removed.
|
||||
|
||||
.. note::
|
||||
|
||||
New files will always appear after current attachments.
|
||||
|
||||
view: Optional[:class:`~discord.ui.View`]
|
||||
The updated view to update this message with. If ``None`` is passed then
|
||||
the view is removed.
|
||||
@@ -667,8 +673,7 @@ class InteractionMessage(Message):
|
||||
content: Optional[str] = MISSING,
|
||||
embeds: List[Embed] = MISSING,
|
||||
embed: Optional[Embed] = MISSING,
|
||||
file: File = MISSING,
|
||||
files: List[File] = MISSING,
|
||||
attachments: List[Union[Attachment, File]] = MISSING,
|
||||
view: Optional[View] = MISSING,
|
||||
allowed_mentions: Optional[AllowedMentions] = None,
|
||||
) -> InteractionMessage:
|
||||
@@ -685,11 +690,14 @@ class InteractionMessage(Message):
|
||||
embed: Optional[:class:`Embed`]
|
||||
The embed to edit the message with. ``None`` suppresses the embeds.
|
||||
This should not be mixed with the ``embeds`` parameter.
|
||||
file: :class:`File`
|
||||
The file to upload. This cannot be mixed with ``files`` parameter.
|
||||
files: List[:class:`File`]
|
||||
A list of files to send with the content. This cannot be mixed with the
|
||||
``file`` parameter.
|
||||
attachments: List[Union[:class:`Attachment`, :class:`File`]]
|
||||
A list of attachments to keep in the message as well as new files to upload. If ``[]`` is passed
|
||||
then all attachments are removed.
|
||||
|
||||
.. note::
|
||||
|
||||
New files will always appear after current attachments.
|
||||
|
||||
allowed_mentions: :class:`AllowedMentions`
|
||||
Controls the mentions being processed in this message.
|
||||
See :meth:`.abc.Messageable.send` for more information.
|
||||
@@ -704,7 +712,7 @@ class InteractionMessage(Message):
|
||||
Forbidden
|
||||
Edited a message that is not yours.
|
||||
TypeError
|
||||
You specified both ``embed`` and ``embeds`` or ``file`` and ``files``
|
||||
You specified both ``embed`` and ``embeds``
|
||||
ValueError
|
||||
The length of ``embeds`` was invalid.
|
||||
|
||||
@@ -717,11 +725,62 @@ class InteractionMessage(Message):
|
||||
content=content,
|
||||
embeds=embeds,
|
||||
embed=embed,
|
||||
file=file,
|
||||
files=files,
|
||||
attachments=attachments,
|
||||
view=view,
|
||||
allowed_mentions=allowed_mentions,
|
||||
)
|
||||
|
||||
async def add_files(self, *files: File) -> InteractionMessage:
|
||||
r"""|coro|
|
||||
|
||||
Adds new files to the end of the message attachments.
|
||||
|
||||
.. versionadded:: 2.0
|
||||
|
||||
Parameters
|
||||
-----------
|
||||
\*files: :class:`File`
|
||||
New files to add to the message.
|
||||
|
||||
Raises
|
||||
-------
|
||||
HTTPException
|
||||
Editing the message failed.
|
||||
Forbidden
|
||||
Tried to edit a message that isn't yours.
|
||||
|
||||
Returns
|
||||
---------
|
||||
:class:`InteractionMessage`
|
||||
The newly edited message.
|
||||
"""
|
||||
return await self.edit(attachments=[*self.attachments, *files])
|
||||
|
||||
async def remove_attachments(self, *attachments: Attachment) -> InteractionMessage:
|
||||
r"""|coro|
|
||||
|
||||
Removes attachments from the message.
|
||||
|
||||
.. versionadded:: 2.0
|
||||
|
||||
Parameters
|
||||
-----------
|
||||
\*attachments: :class:`Attachment`
|
||||
Attachments to remove from the message.
|
||||
|
||||
Raises
|
||||
-------
|
||||
HTTPException
|
||||
Editing the message failed.
|
||||
Forbidden
|
||||
Tried to edit a message that isn't yours.
|
||||
|
||||
Returns
|
||||
---------
|
||||
:class:`InteractionMessage`
|
||||
The newly edited message.
|
||||
"""
|
||||
return await self.edit(attachments=[a for a in self.attachments if a not in attachments])
|
||||
|
||||
async def delete(self, *, delay: Optional[float] = None) -> None:
|
||||
"""|coro|
|
||||
|
||||
Reference in New Issue
Block a user