From 8eee98aa1312ab687aebf16ade7d8111ad3f3d1a Mon Sep 17 00:00:00 2001 From: Infinidoge Date: Fri, 6 Jun 2025 17:35:54 -0400 Subject: [PATCH] implement sql eval command --- nomen/main.py | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/nomen/main.py b/nomen/main.py index 938486b..0823bbb 100644 --- a/nomen/main.py +++ b/nomen/main.py @@ -7,7 +7,7 @@ import textwrap import traceback 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.commands import Bot, Paginator from dotenv import find_dotenv, load_dotenv @@ -199,16 +199,40 @@ async def echo(ctx, arg): @commands.is_owner() async def sql(ctx, *, query): 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) - 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")