import discord | |
import threading | |
import os | |
import gradio as gr | |
DISCORD_BOT_TOKEN = os.getenv("DISCORD_BOT_TOKEN") | |
MONITORED_CHANNEL_IDS = [1269327567534559246, 1269536568172089448, 1269327567534559245, 1270219422472077344, 1269327567740211272, 1269327567534559244] | |
deleted_messages = {} | |
intents = discord.Intents.default() | |
intents.message_content = True | |
intents.messages = True | |
intents.guilds = True | |
client = discord.Client(intents=intents) | |
async def on_ready(): | |
print(f'Logged in as {client.user}') | |
async def on_message_delete(message): | |
global deleted_messages | |
if message.channel.id in MONITORED_CHANNEL_IDS: | |
deleted_messages[message.channel.id] = { | |
'message': message.content, | |
'username': message.author.name | |
} | |
print(f"Message deleted in channel {message.channel.id}: {message.content} by {message.author.name}") | |
async def on_message(message): | |
global deleted_messages | |
if message.author == client.user: | |
return | |
if message.content.lower() == ",s": | |
if message.channel.id in deleted_messages: | |
response = f"{deleted_messages[message.channel.id]['username']} : {deleted_messages[message.channel.id]['message']}" | |
else: | |
response = "No recently deleted messages in this channel." | |
await message.channel.send(response) | |
def run_discord_bot(): | |
client.run(DISCORD_BOT_TOKEN) | |
def show_snipe(): | |
output = "" | |
for channel_id, data in deleted_messages.items(): | |
output += f"Channel {channel_id}:\n{data['username']} : {data['message']}\n\n" | |
return output if output else "No recently deleted messages in monitored channels." | |
iface = gr.Interface(fn=show_snipe, inputs=None, outputs="text") | |
discord_thread = threading.Thread(target=run_discord_bot) | |
discord_thread.start() | |
iface.launch() | |