Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
test log search
Browse files
app.py
CHANGED
|
@@ -7,6 +7,7 @@ import json
|
|
| 7 |
import random
|
| 8 |
import time
|
| 9 |
import re
|
|
|
|
| 10 |
from discord import Embed, Color
|
| 11 |
from discord.ext import commands, tasks
|
| 12 |
from gradio_client import Client
|
|
@@ -37,6 +38,54 @@ logging.basicConfig(level=logging.DEBUG)
|
|
| 37 |
message_cache = {}
|
| 38 |
|
| 39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
# twitter
|
| 41 |
WATCHED_USER = 'Awk20000'
|
| 42 |
CHANNEL_ID = 123456789012345678
|
|
|
|
| 7 |
import random
|
| 8 |
import time
|
| 9 |
import re
|
| 10 |
+
import io
|
| 11 |
from discord import Embed, Color
|
| 12 |
from discord.ext import commands, tasks
|
| 13 |
from gradio_client import Client
|
|
|
|
| 38 |
message_cache = {}
|
| 39 |
|
| 40 |
|
| 41 |
+
|
| 42 |
+
LOG_CHANNEL_IDS = {
|
| 43 |
+
"posted": 1380960802990854204,
|
| 44 |
+
"edited": 1380960825795411978,
|
| 45 |
+
"deleted": 1380960864990924941,
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
# test
|
| 50 |
+
@bot.command()
|
| 51 |
+
async def search(ctx, target_id: str):
|
| 52 |
+
collected = []
|
| 53 |
+
|
| 54 |
+
for log_type, channel_id in LOG_CHANNEL_IDS.items():
|
| 55 |
+
channel = bot.get_channel(channel_id)
|
| 56 |
+
if not channel:
|
| 57 |
+
await ctx.send(f"Could not access log channel: {log_type}")
|
| 58 |
+
continue
|
| 59 |
+
|
| 60 |
+
async for message in channel.history(limit=1000): # adjust limit as needed
|
| 61 |
+
if not message.embeds:
|
| 62 |
+
continue
|
| 63 |
+
|
| 64 |
+
embed = message.embeds[0]
|
| 65 |
+
for field in embed.fields:
|
| 66 |
+
if field.name.startswith("ID") and target_id in field.value:
|
| 67 |
+
entry = {
|
| 68 |
+
"log_type": log_type,
|
| 69 |
+
"timestamp": str(embed.timestamp),
|
| 70 |
+
"author": embed.author.name,
|
| 71 |
+
"description": embed.description,
|
| 72 |
+
"fields": {f.name: f.value for f in embed.fields},
|
| 73 |
+
"jump_url": embed.url if embed.url else "N/A",
|
| 74 |
+
}
|
| 75 |
+
collected.append(entry)
|
| 76 |
+
break
|
| 77 |
+
|
| 78 |
+
if not collected:
|
| 79 |
+
await ctx.send(f"No logs found for ID `{target_id}`.")
|
| 80 |
+
return
|
| 81 |
+
|
| 82 |
+
# Save results to a JSON file in-memory
|
| 83 |
+
json_data = json.dumps(collected, indent=2)
|
| 84 |
+
file = discord.File(io.BytesIO(json_data.encode()), filename=f"{target_id}_logs.json")
|
| 85 |
+
|
| 86 |
+
await ctx.send(f"Found {len(collected)} logs for ID `{target_id}`:", file=file)
|
| 87 |
+
|
| 88 |
+
|
| 89 |
# twitter
|
| 90 |
WATCHED_USER = 'Awk20000'
|
| 91 |
CHANNEL_ID = 123456789012345678
|