Skip to content

Commit ec4e666

Browse files
committed
Allow deleting moved messages.
1 parent cb50e09 commit ec4e666

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

app/components/move_message.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
from app.setup import bot, config
66
from app.utils import (
77
GuildTextChannel,
8+
get_moved_message,
9+
get_moved_message_author_id,
810
get_or_create_webhook,
911
is_dm,
1012
is_helper,
@@ -199,3 +201,40 @@ async def turn_into_help_post(
199201
return
200202

201203
await interaction.response.send_modal(HelpPostTitle(message))
204+
205+
206+
@bot.tree.context_menu(name="Delete moved message")
207+
@discord.app_commands.guild_only()
208+
async def delete_moved_message(
209+
interaction: discord.Interaction, message: discord.Message
210+
) -> None:
211+
assert not is_dm(interaction.user)
212+
213+
if (webhook_message := await get_moved_message(message)) is None:
214+
await interaction.response.send_message(
215+
"This message cannot be deleted.", ephemeral=True
216+
)
217+
return
218+
219+
if (
220+
webhook_message is discord.utils.MISSING
221+
or (author_id := get_moved_message_author_id(webhook_message)) is None
222+
):
223+
await interaction.response.send_message(
224+
"This message is not a moved message.", ephemeral=True
225+
)
226+
return
227+
228+
if not (
229+
interaction.user.id == author_id
230+
or message.channel.permissions_for(interaction.user).manage_messages
231+
):
232+
await interaction.response.send_message(
233+
"You are either not the author, or do not have the required "
234+
"permissions to delete messages.",
235+
ephemeral=True,
236+
)
237+
return
238+
239+
await message.delete()
240+
await interaction.response.send_message("Message deleted.", ephemeral=True)

0 commit comments

Comments
 (0)