1
Fork 0
mirror of https://github.com/wlinator/luminara.git synced 2024-10-02 22:23:13 +00:00
Lumi/modules/owneronly.py
2023-06-23 05:12:02 -04:00

60 lines
1.7 KiB
Python

import json
import os
import sqlite3
import discord
from discord.ext import commands
from dotenv import load_dotenv
from db import database
from sb_tools import universal
load_dotenv('.env')
active_blackjack_games = {}
special_balance_name = os.getenv("SPECIAL_BALANCE_NAME")
cash_balance_name = os.getenv("CASH_BALANCE_NAME")
with open("config/economy.json") as file:
json_data = json.load(file)
class OwnerOnlyCog(commands.Cog):
def __init__(self, sbbot):
self.bot = sbbot
sql = discord.SlashCommandGroup(name="sql", description="Perform SQL commands (DANGEROUS)")
@sql.command(
name="select",
description="Perform a SELECT query in the database.",
guild_only=True
)
@commands.check(universal.owner_check)
async def select(self, ctx, *, query: discord.Option(str)):
if query.lower().startswith("select "):
query = query[7:]
try:
results = database.select_query(f"SELECT {query}")
except sqlite3.Error as error:
results = error
return await ctx.respond(content=f"```SELECT {query}```\n```{results}```", ephemeral=True)
@sql.command(
name="inject",
description="Change a value in the database. (DANGEROUS)",
guild_only=True
)
@commands.check(universal.owner_check)
async def inject(self, ctx, *, query: discord.Option(str)):
try:
database.execute_query(query)
await ctx.respond(content=f"That worked!\n```{query}```", ephemeral=True)
except sqlite3.Error as error:
await ctx.respond(content=f"Query:\n```{query}```\nError message:\n```{error}```", ephemeral=True)
def setup(sbbot):
sbbot.add_cog(OwnerOnlyCog(sbbot))