From d2ef556bcd39860759f604c5f2585fac46dfc4ea Mon Sep 17 00:00:00 2001 From: sebkuip Date: Sun, 25 Jan 2026 15:59:18 +0100 Subject: [PATCH 1/4] Fixing up long deletes causing the moderation stuff to break --- util.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/util.py b/util.py index fa1cb98..771ade7 100644 --- a/util.py +++ b/util.py @@ -2,6 +2,7 @@ import typing from random import choice from copy import copy +from io import StringIO import discord from discord import app_commands @@ -284,13 +285,29 @@ async def create_deletion_embed( if len(message.message_snapshots) > 0: embed.add_field( name="Forwarded Message Content", - value=f"||{message.message_snapshots[0].content}||" or "No content", + value=f"||{return_or_truncate(message.message_snapshots[0].content, 500)}||" or "No content", inline=False, ) attachments = [await attachment.to_file() for attachment in message.message_snapshots[0].attachments] + # On long message, provide a .txt file with full content + if len(message.message_snapshots[0].content) > 500: + full_content_file = discord.File( + fp=StringIO(message.message_snapshots[0].content), + filename=f"message_{message.id}_full_content.txt", + spoiler=True, + ) + attachments.append(full_content_file) else: - embed.add_field(name="Message Content", value=f"||{message.content}||" or "No content", inline=False) + embed.add_field(name="Message Content", value=f"||{return_or_truncate(message.content, 500)}||" or "No content", inline=False) attachments = [await attachment.to_file() for attachment in message.attachments] + # On long message, provide a .txt file with full content + if len(message.content) > 500: + full_content_file = discord.File( + fp=StringIO(message.content), + filename=f"message_{message.id}_full_content.txt", + spoiler=True, + ) + attachments.append(full_content_file) embed.add_field(name="Channel", value=message.channel.jump_url, inline=True) embed.add_field(name="Context", value=message.jump_url, inline=True) embed.set_footer(text=f"Message ID: {message.id}") From 9c1e42ece9bef5261168e9240aadcd403f081eb5 Mon Sep 17 00:00:00 2001 From: sebkuip Date: Sun, 25 Jan 2026 16:03:15 +0100 Subject: [PATCH 2/4] Fix to no content messages --- cogs/reminders.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cogs/reminders.py b/cogs/reminders.py index e4eb8ea..0bed91c 100644 --- a/cogs/reminders.py +++ b/cogs/reminders.py @@ -57,7 +57,7 @@ async def my_reminders(self, ctx): for message, _, timestamp in reminders: embed.add_field( name=f"Reminder at {timestamp.strftime('%Y-%m-%d %H:%M:%S')}", - value=f"Message: {message or "-"}", + value=f"Message: {message or '-'}", inline=False ) await ctx.reply(embed=embed) @@ -70,7 +70,7 @@ async def check_reminders(self): user_id, channel_id, message = reminder channel = self.bot.get_channel(channel_id) or await self.bot.fetch_channel(channel_id) try: - await channel.send(f"<@{user_id}>{f": {message}" if message else ""}") + await channel.send(f"<@{user_id}>{f': {message}' if message else ''}") except discord.Forbidden: # If the bot cannot send messages to the channel, skip it continue From d054fd474200107cf20da04a8944dd8be2929852 Mon Sep 17 00:00:00 2001 From: sebkuip Date: Sun, 25 Jan 2026 16:06:05 +0100 Subject: [PATCH 3/4] Fix up spoilered attachments --- util.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/util.py b/util.py index 771ade7..df0b2bc 100644 --- a/util.py +++ b/util.py @@ -285,10 +285,10 @@ async def create_deletion_embed( if len(message.message_snapshots) > 0: embed.add_field( name="Forwarded Message Content", - value=f"||{return_or_truncate(message.message_snapshots[0].content, 500)}||" or "No content", + value=f"||{return_or_truncate(message.message_snapshots[0].content, 500)}||" if len(message.message_snapshots[0].content) > 0 else "No content", inline=False, ) - attachments = [await attachment.to_file() for attachment in message.message_snapshots[0].attachments] + attachments = [await attachment.to_file(spoiler=True) for attachment in message.message_snapshots[0].attachments] # On long message, provide a .txt file with full content if len(message.message_snapshots[0].content) > 500: full_content_file = discord.File( @@ -298,8 +298,8 @@ async def create_deletion_embed( ) attachments.append(full_content_file) else: - embed.add_field(name="Message Content", value=f"||{return_or_truncate(message.content, 500)}||" or "No content", inline=False) - attachments = [await attachment.to_file() for attachment in message.attachments] + embed.add_field(name="Message Content", value=f"||{return_or_truncate(message.content, 500)}||" if len(message.content) > 0 else "No content", inline=False) + attachments = [await attachment.to_file(spoiler=True) for attachment in message.attachments] # On long message, provide a .txt file with full content if len(message.content) > 500: full_content_file = discord.File( From 812bc012dbf4da1538ce27ef729fef1315c1b054 Mon Sep 17 00:00:00 2001 From: sebkuip Date: Sun, 25 Jan 2026 16:11:04 +0100 Subject: [PATCH 4/4] Some whacky string stuff appeared. IDK what happened --- cogs/reminders.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cogs/reminders.py b/cogs/reminders.py index 0bed91c..7a0a077 100644 --- a/cogs/reminders.py +++ b/cogs/reminders.py @@ -70,7 +70,7 @@ async def check_reminders(self): user_id, channel_id, message = reminder channel = self.bot.get_channel(channel_id) or await self.bot.fetch_channel(channel_id) try: - await channel.send(f"<@{user_id}>{f': {message}' if message else ''}") + await channel.send(f"<@{user_id}>: {message}" if message else '') except discord.Forbidden: # If the bot cannot send messages to the channel, skip it continue