diff --git a/bots.py b/bots.py index fd332a5..e3f367d 100644 --- a/bots.py +++ b/bots.py @@ -35,7 +35,7 @@ except json.JSONDecodeError as e: # Simple Logging System ############################### -def log(message, level="INFO"): +def log(message, level="INFO", exec_info=False): """ A simple logging function with adjustable log levels. Logs messages in a structured format. @@ -56,6 +56,10 @@ def log(message, level="INFO"): timestamp = time.strftime('%Y-%m-%d %H:%M:%S') log_message = f"[{timestamp} - {uptime_str}] [{level}] {message}" + # If traceback is requested (e.g., for errors) + if exec_info or level == "CRITICAL" or level == "FATAL": + log_message += f"\n{traceback.format_exc()}" + try: print(log_message) # Print to terminal if level == "FATAL": diff --git a/cmd_discord.py b/cmd_discord.py index 552f5da..7f7dfa2 100644 --- a/cmd_discord.py +++ b/cmd_discord.py @@ -10,6 +10,7 @@ def setup(bot, db_conn=None, log=None): """ Attach commands to the Discord bot, store references to db/log. """ + @bot.command(name="greet") @monitor_cmds(bot.log) async def cmd_greet(ctx): diff --git a/modules/utility.py b/modules/utility.py index d1d202b..f7ca3a3 100644 --- a/modules/utility.py +++ b/modules/utility.py @@ -383,9 +383,13 @@ def build_discord_help_message(cmd_name, cmd_help_dict): if examples: lines.append("\nExample usage:") for ex in examples: - ex_cmd = ex.split(" : ")[0] - ex_note = ex.split(" : ")[1] - lines.append(f"- `{ex_cmd}`\n {ex_note}") + ex_arr = ex.split(" : ", 1) # Split into max 2 parts + + # Handle missing description case + ex_cmd = ex_arr[0] + ex_note = str(f"\n {ex_arr[1]}") if len(ex_arr) > 1 else "" + + lines.append(f"- `{ex_cmd}`{ex_note}") return "\n".join(lines)