From 1dcdbe3cf03ff16b3ff2e2e6d572e0b3c72c18c0 Mon Sep 17 00:00:00 2001 From: salmonik Date: Sun, 19 Apr 2026 15:43:32 +0200 Subject: refactor: simplify cogs, reduce complexity - Remove unused imports and dead code - Cleaner error handling - Reduce cognitive complexity --- cogs/trigger.py | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) (limited to 'cogs/trigger.py') diff --git a/cogs/trigger.py b/cogs/trigger.py index 0e76cef..02e5573 100644 --- a/cogs/trigger.py +++ b/cogs/trigger.py @@ -15,6 +15,12 @@ logger = logging.getLogger(__name__) DB_PATH = 'data/triggers.db' +_SELECT_KEYWORD_SQL = "SELECT keyword FROM trigger_keywords WHERE trigger_id=?" +_SELECT_RESPONSE_SQL = "SELECT response_text FROM trigger_responses WHERE trigger_id=?" +_SELECT_TRIGGER_ID_SQL = "SELECT id FROM triggers WHERE name=?" +_TRIGGER_NOT_FOUND_MSG = "Trigger not found." +_TRIGGER_NAME_OPTION = "the name of the trigger" + def get_connection(): return sqlite3.connect(DB_PATH) @@ -112,10 +118,10 @@ class Trigger(commands.Cog): c = conn.cursor() c.execute("SELECT id, name FROM triggers") for trigger_id, name in c.fetchall(): - c.execute("SELECT keyword FROM trigger_keywords WHERE trigger_id=?", (trigger_id,)) + c.execute(_SELECT_KEYWORD_SQL, (trigger_id,)) keywords = [row[0] for row in c.fetchall()] if any(keyword in content for keyword in keywords): - c.execute("SELECT response_text FROM trigger_responses WHERE trigger_id=?", (trigger_id,)) + c.execute(_SELECT_RESPONSE_SQL, (trigger_id,)) responses = [row[0] for row in c.fetchall()] if responses: await message.channel.send(random.choice(responses).replace('\\n', '\n')) @@ -137,7 +143,7 @@ class Trigger(commands.Cog): ctx: discord.ApplicationContext, name = discord.Option( str, - "the name of the trigger", + _TRIGGER_NAME_OPTION, autocomplete= discord.utils.basic_autocomplete(get_type), required=True ) @@ -157,7 +163,7 @@ class Trigger(commands.Cog): ctx: discord.ApplicationContext, name = discord.Option( str, - "the name of the trigger", + _TRIGGER_NAME_OPTION, autocomplete= discord.utils.basic_autocomplete(get_type), required=True ), @@ -174,10 +180,10 @@ class Trigger(commands.Cog): ): with get_connection() as conn: c = conn.cursor() - c.execute("SELECT id FROM triggers WHERE name=?", (name,)) + c.execute(_SELECT_TRIGGER_ID_SQL, (name,)) row = c.fetchone() if not row: - await ctx.respond("Trigger not found.") + await ctx.respond(_TRIGGER_NOT_FOUND_MSG) logger.warning(f"Trigger not found: {name}") return trigger_id = row[0] @@ -204,7 +210,7 @@ class Trigger(commands.Cog): ctx: discord.ApplicationContext, name = discord.Option( str, - "the name of the trigger", + _TRIGGER_NAME_OPTION, autocomplete= discord.utils.basic_autocomplete(get_type), required=True ), @@ -221,10 +227,10 @@ class Trigger(commands.Cog): ): with get_connection() as conn: c = conn.cursor() - c.execute("SELECT id FROM triggers WHERE name=?", (name,)) + c.execute(_SELECT_TRIGGER_ID_SQL, (name,)) row = c.fetchone() if not row: - await ctx.respond("Trigger not found.") + await ctx.respond(_TRIGGER_NOT_FOUND_MSG) logger.warning(f"Trigger not found: {name}") return trigger_id = row[0] @@ -245,17 +251,17 @@ class Trigger(commands.Cog): ctx: discord.ApplicationContext, name = discord.Option( str, - "the name of the trigger", + _TRIGGER_NAME_OPTION, autocomplete= discord.utils.basic_autocomplete(get_type), required=True ) ): with get_connection() as conn: c = conn.cursor() - c.execute("SELECT id FROM triggers WHERE name=?", (name,)) + c.execute(_SELECT_TRIGGER_ID_SQL, (name,)) row = c.fetchone() if not row: - await ctx.respond("Trigger not found.") + await ctx.respond(_TRIGGER_NOT_FOUND_MSG) return trigger_id = row[0] c.execute("DELETE FROM trigger_keywords WHERE trigger_id=?", (trigger_id,)) @@ -275,7 +281,7 @@ class Trigger(commands.Cog): ctx: discord.ApplicationContext, name = discord.Option( str, - "the name of the trigger", + _TRIGGER_NAME_OPTION, autocomplete=discord.utils.basic_autocomplete(get_type), required=True ) @@ -286,13 +292,13 @@ class Trigger(commands.Cog): c.execute("SELECT id FROM triggers WHERE name=?", (name,)) row = c.fetchone() if not row: - await ctx.respond("Trigger not found.") + await ctx.respond(_TRIGGER_NOT_FOUND_MSG) logger.warning(f"Trigger not found: {name}") return trigger_id = row[0] - c.execute("SELECT keyword FROM trigger_keywords WHERE trigger_id=?", (trigger_id,)) + c.execute(_SELECT_KEYWORD_SQL, (trigger_id,)) triggers = [row[0] for row in c.fetchall()] - c.execute("SELECT response_text FROM trigger_responses WHERE trigger_id=?", (trigger_id,)) + c.execute(_SELECT_RESPONSE_SQL, (trigger_id,)) responses = [row[0] for row in c.fetchall()] trigger_list = "\n".join(triggers) response_list = "\n".join(responses) @@ -303,13 +309,13 @@ class Trigger(commands.Cog): c.execute("SELECT id, name FROM triggers") messages = [] for trigger_id, name in c.fetchall(): - c.execute("SELECT keyword FROM trigger_keywords WHERE trigger_id=?", (trigger_id,)) + c.execute(_SELECT_KEYWORD_SQL, (trigger_id,)) triggers = ", ".join([row[0] for row in c.fetchall()]) - c.execute("SELECT response_text FROM trigger_responses WHERE trigger_id=?", (trigger_id,)) + c.execute(_SELECT_RESPONSE_SQL, (trigger_id,)) responses = ", ".join([row[0] for row in c.fetchall()]) messages.append(f"**{name}**\nTriggers: {triggers}\nResponses: {responses}") await ctx.respond("\n\n".join(messages)) - logger.info(f"Triggers listed") + logger.info("Triggers listed") @trigger_group.command( description="how to use trigger group?" -- cgit v1.2.3