selfbot-legacy/bot/handlers/tracking_handler.py

51 lines
1.7 KiB
Python
Raw Normal View History

2025-05-07 16:44:50 +02:00
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
)