implement sql eval command

This commit is contained in:
Infinidoge 2025-06-06 17:35:54 -04:00
parent a5a6312403
commit 8eee98aa13
Signed by: Infinidoge
SSH key fingerprint: SHA256:GT2StvPQMMfFHyiiFJymQxfTG/z6EWLJ6NWItf5K5sA

View file

@ -7,7 +7,7 @@ import textwrap
import traceback import traceback
from contextlib import redirect_stdout from contextlib import redirect_stdout
from disnake import Embed, Guild, Intents, Message from disnake import Embed, Guild, Intents, Message, Thread
from disnake.ext import commands from disnake.ext import commands
from disnake.ext.commands import Bot, Paginator from disnake.ext.commands import Bot, Paginator
from dotenv import find_dotenv, load_dotenv from dotenv import find_dotenv, load_dotenv
@ -199,16 +199,40 @@ async def echo(ctx, arg):
@commands.is_owner() @commands.is_owner()
async def sql(ctx, *, query): async def sql(ctx, *, query):
params = { params = {
"guild_id": ctx.guild.id, "author": ctx.author.id,
"channel": ctx.channel.id,
"category": ctx.channel.category_id,
"guild": ctx.guild.id,
"parent": 0,
} }
if isinstance(ctx.channel, Thread) and ctx.channel.parent:
params["parent"] = ctx.channel.parent.id
query = cleanup_code(query) query = cleanup_code(query)
cur = await ctx.bot.db.execute(query) try:
ret = await ctx.bot.db.execute_fetchall(query, params)
except Exception:
ret = traceback.format_exc()
try:
await ctx.message.add_reaction("\u2705")
except:
pass
else:
try:
await ctx.message.add_reaction("\u2705")
except:
pass
result = await cur.fetchall() paginator = Paginator(prefix="```py", suffix="```")
if ret:
for line in pprint.pformat(ret).split("\n"):
paginator.add_line(line)
paginator.close_page()
# TODO: Finish SQL evaluation command for page in paginator.pages:
await ctx.send(page)
@bot.command(hidden=True, name="eval") @bot.command(hidden=True, name="eval")