Skip to content

Commit b125ee0

Browse files
committed
added delete_after param to interaction message edits
1 parent c3f2de9 commit b125ee0

File tree

1 file changed

+23
-4
lines changed

1 file changed

+23
-4
lines changed

discord/interactions.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ async def edit_original_message(
272272
files: List[File] = MISSING,
273273
view: Optional[View] = MISSING,
274274
allowed_mentions: Optional[AllowedMentions] = None,
275+
delete_after: Optional[float] = None,
275276
) -> InteractionMessage:
276277
"""|coro|
277278
@@ -303,6 +304,10 @@ async def edit_original_message(
303304
view: Optional[:class:`~discord.ui.View`]
304305
The updated view to update this message with. If ``None`` is passed then
305306
the view is removed.
307+
delete_after: Optional[:class:`float`]
308+
If provided, the number of seconds to wait in the background
309+
before deleting the message we just edited. If the deletion fails,
310+
then it is silently ignored.
306311
307312
Raises
308313
-------
@@ -346,6 +351,10 @@ async def edit_original_message(
346351
message = InteractionMessage(state=self._state, channel=self.channel, data=data) # type: ignore
347352
if view and not view.is_finished():
348353
self._state.store_view(view, message.id)
354+
355+
if delete_after is not None:
356+
await self.delete_original_message(delay=delete_after)
357+
349358
return message
350359

351360
async def delete_original_message(self, *, delay: Optional[float] = None) -> None:
@@ -611,10 +620,7 @@ async def send_message(
611620

612621
self._responded = True
613622
if delete_after is not None:
614-
async def delete():
615-
await asyncio.sleep(delete_after)
616-
await self._parent.delete_original_message()
617-
asyncio.ensure_future(delete(), loop=self._parent._state.loop)
623+
await self._parent.delete_original_message(delay=delete_after)
618624
return self._parent
619625

620626
async def edit_message(
@@ -625,6 +631,7 @@ async def edit_message(
625631
embeds: List[Embed] = MISSING,
626632
attachments: List[Attachment] = MISSING,
627633
view: Optional[View] = MISSING,
634+
delete_after: Optional[float] = None
628635
) -> None:
629636
"""|coro|
630637
@@ -646,6 +653,10 @@ async def edit_message(
646653
view: Optional[:class:`~discord.ui.View`]
647654
The updated view to update this message with. If ``None`` is passed then
648655
the view is removed.
656+
delete_after: Optional[:class:`float`]
657+
If provided, the number of seconds to wait in the background
658+
before deleting the message we just edited. If the deletion fails,
659+
then it is silently ignored.
649660
650661
Raises
651662
-------
@@ -708,6 +719,8 @@ async def edit_message(
708719
state.store_view(view, message_id)
709720

710721
self._responded = True
722+
if delete_after is not None:
723+
await self._parent.delete_original_message(delay=delete_after)
711724

712725
async def send_autocomplete_result(
713726
self,
@@ -800,6 +813,7 @@ async def edit(
800813
files: List[File] = MISSING,
801814
view: Optional[View] = MISSING,
802815
allowed_mentions: Optional[AllowedMentions] = None,
816+
delete_after: Optional[float] = None,
803817
) -> InteractionMessage:
804818
"""|coro|
805819
@@ -825,6 +839,10 @@ async def edit(
825839
view: Optional[:class:`~discord.ui.View`]
826840
The updated view to update this message with. If ``None`` is passed then
827841
the view is removed.
842+
delete_after: Optional[:class:`float`]
843+
If provided, the number of seconds to wait in the background
844+
before deleting the message we just edited. If the deletion fails,
845+
then it is silently ignored.
828846
829847
Raises
830848
-------
@@ -850,6 +868,7 @@ async def edit(
850868
files=files,
851869
view=view,
852870
allowed_mentions=allowed_mentions,
871+
delete_after=delete_after
853872
)
854873

855874
async def delete(self, *, delay: Optional[float] = None) -> None:

0 commit comments

Comments
 (0)