From 0d2b84b8a3d7dcffa4cb90b2207fd1984fdfd035 Mon Sep 17 00:00:00 2001 From: ItsRqtl Date: Sat, 8 Jun 2024 11:48:44 -0700 Subject: [PATCH 1/2] fix: allow removing files and embeds by editing --- interactions/api/http/http_client.py | 6 +++++- interactions/models/discord/message.py | 2 +- interactions/models/internal/context.py | 8 ++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/interactions/api/http/http_client.py b/interactions/api/http/http_client.py index dd3061c1f..18a386dbf 100644 --- a/interactions/api/http/http_client.py +++ b/interactions/api/http/http_client.py @@ -319,7 +319,11 @@ def _process_payload( else: payload = [dict_filter(x) if isinstance(x, dict) else x for x in payload] - if not files: + if files is None: + return payload + + if files == []: + payload["attachments"] = [] return payload if not isinstance(files, list): diff --git a/interactions/models/discord/message.py b/interactions/models/discord/message.py index a214b8800..74324afa2 100644 --- a/interactions/models/discord/message.py +++ b/interactions/models/discord/message.py @@ -701,7 +701,7 @@ async def edit( ) message_payload = process_message_payload( content=content, - embeds=embeds or embed, + embeds=embed if embeds is None else embeds, components=components, allowed_mentions=allowed_mentions, attachments=attachments, diff --git a/interactions/models/internal/context.py b/interactions/models/internal/context.py index 1f826627f..0f0222b3e 100644 --- a/interactions/models/internal/context.py +++ b/interactions/models/internal/context.py @@ -633,7 +633,7 @@ async def edit( ) -> "interactions.Message": message_payload = process_message_payload( content=content, - embeds=embeds or embed, + embeds=embed if embeds is None else embeds, components=components, allowed_mentions=allowed_mentions, attachments=attachments, @@ -875,7 +875,7 @@ async def edit_origin( message_payload = process_message_payload( content=content, - embeds=embeds or embed, + embeds=embed if embeds is None else embeds, components=components, allowed_mentions=allowed_mentions, tts=tts, @@ -889,13 +889,13 @@ async def edit_origin( ) message_data = await self.client.http.edit_interaction_message( - message_payload, self.client.app.id, self.token, files=files or file + message_payload, self.client.app.id, self.token, files=file if files is None else files ) self.deferred = False self.editing_origin = False else: payload = {"type": CallbackType.UPDATE_MESSAGE, "data": message_payload} - await self.client.http.post_initial_response(payload, str(self.id), self.token, files=files or file) + await self.client.http.post_initial_response(payload, str(self.id), self.token, files=file if files is None else files) message_data = await self.client.http.get_interaction_message(self.client.app.id, self.token) if message_data: From 38907e658e08c4a44f1b00b93755d949a1823cec Mon Sep 17 00:00:00 2001 From: ItsRqtl Date: Sat, 8 Jun 2024 11:53:14 -0700 Subject: [PATCH 2/2] style: run pre-commit hooks on all files --- interactions/models/internal/context.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/interactions/models/internal/context.py b/interactions/models/internal/context.py index 0f0222b3e..a29ff3bd9 100644 --- a/interactions/models/internal/context.py +++ b/interactions/models/internal/context.py @@ -895,7 +895,9 @@ async def edit_origin( self.editing_origin = False else: payload = {"type": CallbackType.UPDATE_MESSAGE, "data": message_payload} - await self.client.http.post_initial_response(payload, str(self.id), self.token, files=file if files is None else files) + await self.client.http.post_initial_response( + payload, str(self.id), self.token, files=file if files is None else files + ) message_data = await self.client.http.get_interaction_message(self.client.app.id, self.token) if message_data: