import discord import io import difflib class TrackingHandler: def __init__(self, bot): self.bot = bot async def process_log_whitelist(self, message): """Process whitelist for logging""" if message.author.id == 627566973869359104: return True return False async def handle_message_delete(self, message): """Handle when messages are deleted""" if await self.process_log_whitelist(message): return if message.channel.id in self.bot.tracked_channels: member = message.author if member != self.bot.user: await message.channel.send( f"<@{member.id}> deleted {message.content}", silent=True ) async def handle_message_edit(self, before, after): """Handle when messages are edited""" if await self.process_log_whitelist(before): return if before.channel.id in self.bot.tracked_channels: member = after.author if member == self.bot.user: return if before.content == after.content: return diff = difflib.unified_diff(before.content.splitlines(), after.content.splitlines()) diff_result = '\n'.join(diff) with io.BytesIO(diff_result.encode('utf-8')) as diff_file: diff_file.seek(0) await after.channel.send( f"<@{member.id}> edited a message", file=discord.File(diff_file, "cutie.diff"), silent=True )