This commit is contained in:
Slipstream 2025-05-06 18:29:21 -06:00
parent 759e6f4951
commit acb459bcf4
Signed by: slipstream
GPG Key ID: 13E498CE010AC6FD

View File

@ -250,8 +250,8 @@ async def initialize_database():
async def get_starboard_settings(guild_id: int): async def get_starboard_settings(guild_id: int):
"""Gets the starboard settings for a guild.""" """Gets the starboard settings for a guild."""
log.debug(f"get_starboard_settings: _active_pg_pool is {id(_active_pg_pool)}, _active_redis_pool is {id(_active_redis_pool)}") log.debug(f"get_starboard_settings: _active_pg_pool is {id(_active_pg_pool)}, _active_redis_pool is {id(_active_redis_pool)}")
if not _active_pg_pool: if _active_pg_pool is None:
log.warning(f"PostgreSQL pool not initialized in settings_manager (ID: {id(_active_pg_pool)}), returning None for starboard settings for guild {guild_id}.") log.warning(f"PostgreSQL pool is None in settings_manager (ID: {id(_active_pg_pool)}), returning None for starboard settings for guild {guild_id}.")
return None return None
try: try:
@ -302,8 +302,8 @@ async def update_starboard_settings(guild_id: int, **kwargs):
bool: True if successful, False otherwise bool: True if successful, False otherwise
""" """
log.info(f"update_starboard_settings called for guild {guild_id}. Current _active_pg_pool ID: {id(_active_pg_pool)}") log.info(f"update_starboard_settings called for guild {guild_id}. Current _active_pg_pool ID: {id(_active_pg_pool)}")
if not _active_pg_pool: if _active_pg_pool is None:
log.error(f"PostgreSQL pool not initialized in settings_manager (ID: {id(_active_pg_pool)}), cannot update starboard settings for guild {guild_id}.") log.error(f"PostgreSQL pool is None in settings_manager (ID: {id(_active_pg_pool)}), cannot update starboard settings for guild {guild_id}.")
return False return False
valid_keys = {'enabled', 'star_emoji', 'threshold', 'starboard_channel_id', 'ignore_bots', 'self_star'} valid_keys = {'enabled', 'star_emoji', 'threshold', 'starboard_channel_id', 'ignore_bots', 'self_star'}
@ -380,8 +380,8 @@ async def update_starboard_settings(guild_id: int, **kwargs):
async def get_starboard_entry(guild_id: int, original_message_id: int): async def get_starboard_entry(guild_id: int, original_message_id: int):
"""Gets a starboard entry for a specific message.""" """Gets a starboard entry for a specific message."""
if not _active_pg_pool: if _active_pg_pool is None:
log.warning(f"PostgreSQL pool not initialized in settings_manager, returning None for starboard entry.") log.warning(f"PostgreSQL pool is None in settings_manager, returning None for starboard entry for guild {guild_id}.")
return None return None
try: try:
@ -402,8 +402,8 @@ async def get_starboard_entry(guild_id: int, original_message_id: int):
async def create_starboard_entry(guild_id: int, original_message_id: int, original_channel_id: int, async def create_starboard_entry(guild_id: int, original_message_id: int, original_channel_id: int,
starboard_message_id: int, author_id: int, star_count: int = 1): starboard_message_id: int, author_id: int, star_count: int = 1):
"""Creates a new starboard entry.""" """Creates a new starboard entry."""
if not _active_pg_pool: if _active_pg_pool is None:
log.error(f"PostgreSQL pool not initialized in settings_manager, cannot create starboard entry.") log.error(f"PostgreSQL pool is None in settings_manager, cannot create starboard entry for guild {guild_id}.")
return False return False
try: try:
@ -430,8 +430,8 @@ async def create_starboard_entry(guild_id: int, original_message_id: int, origin
async def update_starboard_entry(guild_id: int, original_message_id: int, star_count: int): async def update_starboard_entry(guild_id: int, original_message_id: int, star_count: int):
"""Updates the star count for an existing starboard entry.""" """Updates the star count for an existing starboard entry."""
if not _active_pg_pool: if _active_pg_pool is None:
log.error(f"PostgreSQL pool not initialized in settings_manager, cannot update starboard entry.") log.error(f"PostgreSQL pool is None in settings_manager, cannot update starboard entry for guild {guild_id}.")
return False return False
try: try:
@ -464,8 +464,8 @@ async def update_starboard_entry(guild_id: int, original_message_id: int, star_c
async def delete_starboard_entry(guild_id: int, original_message_id: int): async def delete_starboard_entry(guild_id: int, original_message_id: int):
"""Deletes a starboard entry.""" """Deletes a starboard entry."""
if not _active_pg_pool: if _active_pg_pool is None:
log.error(f"PostgreSQL pool not initialized in settings_manager, cannot delete starboard entry.") log.error(f"PostgreSQL pool is None in settings_manager, cannot delete starboard entry for guild {guild_id}.")
return False return False
try: try:
@ -507,8 +507,8 @@ async def delete_starboard_entry(guild_id: int, original_message_id: int):
async def clear_starboard_entries(guild_id: int): async def clear_starboard_entries(guild_id: int):
"""Clears all starboard entries for a guild.""" """Clears all starboard entries for a guild."""
if not _active_pg_pool: if _active_pg_pool is None:
log.error(f"PostgreSQL pool not initialized in settings_manager, cannot clear starboard entries.") log.error(f"PostgreSQL pool is None in settings_manager, cannot clear starboard entries for guild {guild_id}.")
return False return False
try: try:
@ -559,8 +559,8 @@ async def clear_starboard_entries(guild_id: int):
async def add_starboard_reaction(guild_id: int, message_id: int, user_id: int): async def add_starboard_reaction(guild_id: int, message_id: int, user_id: int):
"""Records a user's star reaction to a message.""" """Records a user's star reaction to a message."""
if not _active_pg_pool: if _active_pg_pool is None:
log.error(f"PostgreSQL pool not initialized in settings_manager, cannot add starboard reaction.") log.error(f"PostgreSQL pool is None in settings_manager, cannot add starboard reaction for guild {guild_id}.")
return False return False
# Use a timeout to prevent hanging on database operations # Use a timeout to prevent hanging on database operations
@ -655,8 +655,8 @@ async def add_starboard_reaction(guild_id: int, message_id: int, user_id: int):
async def remove_starboard_reaction(guild_id: int, message_id: int, user_id: int): async def remove_starboard_reaction(guild_id: int, message_id: int, user_id: int):
"""Removes a user's star reaction from a message.""" """Removes a user's star reaction from a message."""
if not _active_pg_pool: if _active_pg_pool is None:
log.error(f"PostgreSQL pool not initialized in settings_manager, cannot remove starboard reaction.") log.error(f"PostgreSQL pool is None in settings_manager, cannot remove starboard reaction for guild {guild_id}.")
return False return False
# Use a timeout to prevent hanging on database operations # Use a timeout to prevent hanging on database operations
@ -737,8 +737,8 @@ async def remove_starboard_reaction(guild_id: int, message_id: int, user_id: int
async def get_starboard_reaction_count(guild_id: int, message_id: int): async def get_starboard_reaction_count(guild_id: int, message_id: int):
"""Gets the count of star reactions for a message.""" """Gets the count of star reactions for a message."""
if not _active_pg_pool: if _active_pg_pool is None:
log.warning(f"PostgreSQL pool not initialized in settings_manager, returning 0 for starboard reaction count.") log.warning(f"PostgreSQL pool is None in settings_manager, returning 0 for starboard reaction count for guild {guild_id}.")
return 0 return 0
try: try:
@ -758,8 +758,8 @@ async def get_starboard_reaction_count(guild_id: int, message_id: int):
async def has_user_reacted(guild_id: int, message_id: int, user_id: int): async def has_user_reacted(guild_id: int, message_id: int, user_id: int):
"""Checks if a user has already reacted to a message.""" """Checks if a user has already reacted to a message."""
if not _active_pg_pool: if _active_pg_pool is None:
log.warning(f"PostgreSQL pool not initialized in settings_manager, returning False for user reaction check.") log.warning(f"PostgreSQL pool is None in settings_manager, returning False for user reaction check for guild {guild_id}.")
return False return False
try: try:
@ -791,8 +791,8 @@ def _get_redis_key(guild_id: int, key_type: str, identifier: str = None) -> str:
async def get_guild_prefix(guild_id: int, default_prefix: str) -> str: async def get_guild_prefix(guild_id: int, default_prefix: str) -> str:
"""Gets the command prefix for a guild, checking cache first.""" """Gets the command prefix for a guild, checking cache first."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning("Pools not initialized in settings_manager, returning default prefix.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, returning default prefix.")
return default_prefix return default_prefix
cache_key = _get_redis_key(guild_id, "prefix") cache_key = _get_redis_key(guild_id, "prefix")
@ -849,8 +849,8 @@ async def get_guild_prefix(guild_id: int, default_prefix: str) -> str:
async def set_guild_prefix(guild_id: int, prefix: str): async def set_guild_prefix(guild_id: int, prefix: str):
"""Sets the command prefix for a guild and updates the cache.""" """Sets the command prefix for a guild and updates the cache."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error("Pools not initialized in settings_manager, cannot set prefix.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot set prefix.")
return False # Indicate failure return False # Indicate failure
cache_key = _get_redis_key(guild_id, "prefix") cache_key = _get_redis_key(guild_id, "prefix")
@ -885,8 +885,8 @@ async def set_guild_prefix(guild_id: int, prefix: str):
async def get_setting(guild_id: int, key: str, default=None): async def get_setting(guild_id: int, key: str, default=None):
"""Gets a specific setting for a guild, checking cache first.""" """Gets a specific setting for a guild, checking cache first."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning(f"Pools not initialized in settings_manager, returning default for setting '{key}'.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, returning default for setting '{key}'.")
return default return default
cache_key = _get_redis_key(guild_id, "setting", key) cache_key = _get_redis_key(guild_id, "setting", key)
@ -974,8 +974,8 @@ async def get_setting(guild_id: int, key: str, default=None):
async def set_setting(guild_id: int, key: str, value: str | None): async def set_setting(guild_id: int, key: str, value: str | None):
"""Sets a specific setting for a guild and updates/invalidates the cache. """Sets a specific setting for a guild and updates/invalidates the cache.
Setting value to None effectively deletes the setting.""" Setting value to None effectively deletes the setting."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error(f"Pools not initialized in settings_manager, cannot set setting '{key}'.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot set setting '{key}'.")
return False # Indicate failure return False # Indicate failure
cache_key = _get_redis_key(guild_id, "setting", key) cache_key = _get_redis_key(guild_id, "setting", key)
@ -1025,8 +1025,8 @@ async def set_setting(guild_id: int, key: str, value: str | None):
async def is_cog_enabled(guild_id: int, cog_name: str, default_enabled: bool = True) -> bool: async def is_cog_enabled(guild_id: int, cog_name: str, default_enabled: bool = True) -> bool:
"""Checks if a cog is enabled for a guild, checking cache first. """Checks if a cog is enabled for a guild, checking cache first.
Uses default_enabled if no specific setting is found.""" Uses default_enabled if no specific setting is found."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning(f"Pools not initialized in settings_manager, returning default for cog '{cog_name}'.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, returning default for cog '{cog_name}'.")
return default_enabled return default_enabled
cache_key = _get_redis_key(guild_id, "cog_enabled", cog_name) cache_key = _get_redis_key(guild_id, "cog_enabled", cog_name)
@ -1086,8 +1086,8 @@ async def is_cog_enabled(guild_id: int, cog_name: str, default_enabled: bool = T
async def set_cog_enabled(guild_id: int, cog_name: str, enabled: bool): async def set_cog_enabled(guild_id: int, cog_name: str, enabled: bool):
"""Sets the enabled status for a cog in a guild and updates the cache.""" """Sets the enabled status for a cog in a guild and updates the cache."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error(f"Pools not initialized in settings_manager, cannot set cog enabled status for '{cog_name}'.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot set cog enabled status for '{cog_name}'.")
return False return False
cache_key = _get_redis_key(guild_id, "cog_enabled", cog_name) cache_key = _get_redis_key(guild_id, "cog_enabled", cog_name)
@ -1122,8 +1122,8 @@ async def set_cog_enabled(guild_id: int, cog_name: str, enabled: bool):
async def is_command_enabled(guild_id: int, command_name: str, default_enabled: bool = True) -> bool: async def is_command_enabled(guild_id: int, command_name: str, default_enabled: bool = True) -> bool:
"""Checks if a command is enabled for a guild, checking cache first. """Checks if a command is enabled for a guild, checking cache first.
Uses default_enabled if no specific setting is found.""" Uses default_enabled if no specific setting is found."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning(f"Pools not initialized in settings_manager, returning default for command '{command_name}'.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, returning default for command '{command_name}'.")
return default_enabled return default_enabled
cache_key = _get_redis_key(guild_id, "cmd_enabled", command_name) cache_key = _get_redis_key(guild_id, "cmd_enabled", command_name)
@ -1183,8 +1183,8 @@ async def is_command_enabled(guild_id: int, command_name: str, default_enabled:
async def set_command_enabled(guild_id: int, command_name: str, enabled: bool): async def set_command_enabled(guild_id: int, command_name: str, enabled: bool):
"""Sets the enabled status for a command in a guild and updates the cache.""" """Sets the enabled status for a command in a guild and updates the cache."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error(f"Pools not initialized in settings_manager, cannot set command enabled status for '{command_name}'.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot set command enabled status for '{command_name}'.")
return False return False
cache_key = _get_redis_key(guild_id, "cmd_enabled", command_name) cache_key = _get_redis_key(guild_id, "cmd_enabled", command_name)
@ -1219,8 +1219,8 @@ async def set_command_enabled(guild_id: int, command_name: str, enabled: bool):
async def get_all_enabled_commands(guild_id: int) -> Dict[str, bool]: async def get_all_enabled_commands(guild_id: int) -> Dict[str, bool]:
"""Gets all command enabled statuses for a guild. """Gets all command enabled statuses for a guild.
Returns a dictionary of command_name -> enabled status.""" Returns a dictionary of command_name -> enabled status."""
if not _active_pg_pool: if _active_pg_pool is None:
log.error(f"Database pool not initialized in settings_manager, cannot get command enabled statuses for guild {guild_id}.") log.error(f"Database pool is None in settings_manager, cannot get command enabled statuses for guild {guild_id}.")
return {} return {}
try: try:
@ -1238,8 +1238,8 @@ async def get_all_enabled_commands(guild_id: int) -> Dict[str, bool]:
async def get_all_enabled_cogs(guild_id: int) -> Dict[str, bool]: async def get_all_enabled_cogs(guild_id: int) -> Dict[str, bool]:
"""Gets all cog enabled statuses for a guild. """Gets all cog enabled statuses for a guild.
Returns a dictionary of cog_name -> enabled status.""" Returns a dictionary of cog_name -> enabled status."""
if not _active_pg_pool: if _active_pg_pool is None:
log.error(f"Database pool not initialized in settings_manager, cannot get cog enabled statuses for guild {guild_id}.") log.error(f"Database pool is None in settings_manager, cannot get cog enabled statuses for guild {guild_id}.")
return {} return {}
try: try:
@ -1257,8 +1257,8 @@ async def get_all_enabled_cogs(guild_id: int) -> Dict[str, bool]:
async def add_command_permission(guild_id: int, command_name: str, role_id: int) -> bool: async def add_command_permission(guild_id: int, command_name: str, role_id: int) -> bool:
"""Adds permission for a role to use a command and invalidates cache.""" """Adds permission for a role to use a command and invalidates cache."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error(f"Pools not initialized in settings_manager, cannot add permission for command '{command_name}'.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot add permission for command '{command_name}'.")
return False return False
cache_key = _get_redis_key(guild_id, "cmd_perms", command_name) cache_key = _get_redis_key(guild_id, "cmd_perms", command_name)
@ -1292,8 +1292,8 @@ async def add_command_permission(guild_id: int, command_name: str, role_id: int)
async def remove_command_permission(guild_id: int, command_name: str, role_id: int) -> bool: async def remove_command_permission(guild_id: int, command_name: str, role_id: int) -> bool:
"""Removes permission for a role to use a command and invalidates cache.""" """Removes permission for a role to use a command and invalidates cache."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error(f"Pools not initialized in settings_manager, cannot remove permission for command '{command_name}'.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot remove permission for command '{command_name}'.")
return False return False
cache_key = _get_redis_key(guild_id, "cmd_perms", command_name) cache_key = _get_redis_key(guild_id, "cmd_perms", command_name)
@ -1329,8 +1329,8 @@ async def check_command_permission(guild_id: int, command_name: str, member_role
Returns True if allowed, False otherwise. Returns True if allowed, False otherwise.
If no permissions are set for the command in the DB, it defaults to allowed by this check. If no permissions are set for the command in the DB, it defaults to allowed by this check.
""" """
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning(f"Pools not initialized in settings_manager, defaulting to allowed for command '{command_name}'.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, defaulting to allowed for command '{command_name}'.")
return True # Default to allowed if system isn't ready return True # Default to allowed if system isn't ready
cache_key = _get_redis_key(guild_id, "cmd_perms", command_name) cache_key = _get_redis_key(guild_id, "cmd_perms", command_name)
@ -1392,8 +1392,8 @@ async def check_command_permission(guild_id: int, command_name: str, member_role
async def get_command_permissions(guild_id: int, command_name: str) -> set[int] | None: async def get_command_permissions(guild_id: int, command_name: str) -> set[int] | None:
"""Gets the set of allowed role IDs for a specific command, checking cache first. Returns None on error.""" """Gets the set of allowed role IDs for a specific command, checking cache first. Returns None on error."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning(f"Pools not initialized in settings_manager, cannot get permissions for command '{command_name}'.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot get permissions for command '{command_name}'.")
return None return None
cache_key = _get_redis_key(guild_id, "cmd_perms", command_name) cache_key = _get_redis_key(guild_id, "cmd_perms", command_name)
@ -1468,8 +1468,8 @@ def _get_log_toggle_cache_key(guild_id: int) -> str:
async def get_all_log_event_toggles(guild_id: int) -> Dict[str, bool]: async def get_all_log_event_toggles(guild_id: int) -> Dict[str, bool]:
"""Gets all logging event toggle settings for a guild, checking cache first.""" """Gets all logging event toggle settings for a guild, checking cache first."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning(f"Pools not initialized in settings_manager, cannot get log toggles for guild {guild_id}.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager, cannot get log toggles for guild {guild_id}.")
return {} return {}
cache_key = _get_log_toggle_cache_key(guild_id) cache_key = _get_log_toggle_cache_key(guild_id)
@ -1521,8 +1521,8 @@ async def get_all_log_event_toggles(guild_id: int) -> Dict[str, bool]:
async def is_log_event_enabled(guild_id: int, event_key: str, default_enabled: bool = True) -> bool: async def is_log_event_enabled(guild_id: int, event_key: str, default_enabled: bool = True) -> bool:
"""Checks if a specific logging event is enabled for a guild.""" """Checks if a specific logging event is enabled for a guild."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning(f"Pools not initialized in settings_manager, returning default for log event '{event_key}'.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, returning default for log event '{event_key}'.")
return default_enabled return default_enabled
cache_key = _get_log_toggle_cache_key(guild_id) cache_key = _get_log_toggle_cache_key(guild_id)
@ -1574,8 +1574,8 @@ async def is_log_event_enabled(guild_id: int, event_key: str, default_enabled: b
async def set_log_event_enabled(guild_id: int, event_key: str, enabled: bool) -> bool: async def set_log_event_enabled(guild_id: int, event_key: str, enabled: bool) -> bool:
"""Sets the enabled status for a specific logging event type.""" """Sets the enabled status for a specific logging event type."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error(f"Pools not initialized in settings_manager, cannot set log event '{event_key}'.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot set log event '{event_key}'.")
return False return False
cache_key = _get_log_toggle_cache_key(guild_id) cache_key = _get_log_toggle_cache_key(guild_id)
@ -1618,8 +1618,8 @@ async def get_bot_guild_ids() -> set[int] | None:
Ensure set_bot_pools() has been called correctly. Ensure set_bot_pools() has been called correctly.
""" """
global _active_pg_pool global _active_pg_pool
if not _active_pg_pool: if _active_pg_pool is None:
log.error("PostgreSQL pool not initialized in settings_manager. Cannot get bot guild IDs.") log.error(f"PostgreSQL pool is None in settings_manager (ID: {id(_active_pg_pool)}). Cannot get bot guild IDs.")
return None return None
try: try:
@ -1642,8 +1642,8 @@ async def get_bot_guild_ids() -> set[int] | None:
async def get_custom_command_name(guild_id: int, original_command_name: str) -> str | None: async def get_custom_command_name(guild_id: int, original_command_name: str) -> str | None:
"""Gets the custom command name for a guild, checking cache first. """Gets the custom command name for a guild, checking cache first.
Returns None if no custom name is set.""" Returns None if no custom name is set."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning(f"Pools not initialized in settings_manager, returning None for custom command name '{original_command_name}'.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, returning None for custom command name '{original_command_name}'.")
return None return None
cache_key = _get_redis_key(guild_id, "cmd_custom", original_command_name) cache_key = _get_redis_key(guild_id, "cmd_custom", original_command_name)
@ -1675,8 +1675,8 @@ async def get_custom_command_name(guild_id: int, original_command_name: str) ->
async def get_custom_command_description(guild_id: int, original_command_name: str) -> str | None: async def get_custom_command_description(guild_id: int, original_command_name: str) -> str | None:
"""Gets the custom command description for a guild, checking cache first. """Gets the custom command description for a guild, checking cache first.
Returns None if no custom description is set.""" Returns None if no custom description is set."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning(f"Pools not initialized in settings_manager, returning None for custom command description '{original_command_name}'.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, returning None for custom command description '{original_command_name}'.")
return None return None
cache_key = _get_redis_key(guild_id, "cmd_desc", original_command_name) cache_key = _get_redis_key(guild_id, "cmd_desc", original_command_name)
@ -1708,8 +1708,8 @@ async def get_custom_command_description(guild_id: int, original_command_name: s
async def set_custom_command_name(guild_id: int, original_command_name: str, custom_command_name: str | None) -> bool: async def set_custom_command_name(guild_id: int, original_command_name: str, custom_command_name: str | None) -> bool:
"""Sets a custom command name for a guild and updates the cache. """Sets a custom command name for a guild and updates the cache.
Setting custom_command_name to None removes the customization.""" Setting custom_command_name to None removes the customization."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error(f"Pools not initialized in settings_manager, cannot set custom command name for '{original_command_name}'.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot set custom command name for '{original_command_name}'.")
return False return False
cache_key = _get_redis_key(guild_id, "cmd_custom", original_command_name) cache_key = _get_redis_key(guild_id, "cmd_custom", original_command_name)
@ -1755,8 +1755,8 @@ async def set_custom_command_name(guild_id: int, original_command_name: str, cus
async def set_custom_command_description(guild_id: int, original_command_name: str, custom_command_description: str | None) -> bool: async def set_custom_command_description(guild_id: int, original_command_name: str, custom_command_description: str | None) -> bool:
"""Sets a custom command description for a guild and updates the cache. """Sets a custom command description for a guild and updates the cache.
Setting custom_command_description to None removes the description.""" Setting custom_command_description to None removes the description."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error(f"Pools not initialized in settings_manager, cannot set custom command description for '{original_command_name}'.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot set custom command description for '{original_command_name}'.")
return False return False
cache_key = _get_redis_key(guild_id, "cmd_desc", original_command_name) cache_key = _get_redis_key(guild_id, "cmd_desc", original_command_name)
@ -1823,8 +1823,8 @@ async def set_custom_command_description(guild_id: int, original_command_name: s
async def get_custom_group_name(guild_id: int, original_group_name: str) -> str | None: async def get_custom_group_name(guild_id: int, original_group_name: str) -> str | None:
"""Gets the custom command group name for a guild, checking cache first. """Gets the custom command group name for a guild, checking cache first.
Returns None if no custom name is set.""" Returns None if no custom name is set."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning(f"Pools not initialized in settings_manager, returning None for custom group name '{original_group_name}'.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, returning None for custom group name '{original_group_name}'.")
return None return None
cache_key = _get_redis_key(guild_id, "group_custom", original_group_name) cache_key = _get_redis_key(guild_id, "group_custom", original_group_name)
@ -1856,8 +1856,8 @@ async def get_custom_group_name(guild_id: int, original_group_name: str) -> str
async def set_custom_group_name(guild_id: int, original_group_name: str, custom_group_name: str | None) -> bool: async def set_custom_group_name(guild_id: int, original_group_name: str, custom_group_name: str | None) -> bool:
"""Sets a custom command group name for a guild and updates the cache. """Sets a custom command group name for a guild and updates the cache.
Setting custom_group_name to None removes the customization.""" Setting custom_group_name to None removes the customization."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error(f"Pools not initialized in settings_manager, cannot set custom group name for '{original_group_name}'.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot set custom group name for '{original_group_name}'.")
return False return False
cache_key = _get_redis_key(guild_id, "group_custom", original_group_name) cache_key = _get_redis_key(guild_id, "group_custom", original_group_name)
@ -1902,8 +1902,8 @@ async def set_custom_group_name(guild_id: int, original_group_name: str, custom_
async def add_command_alias(guild_id: int, original_command_name: str, alias_name: str) -> bool: async def add_command_alias(guild_id: int, original_command_name: str, alias_name: str) -> bool:
"""Adds an alias for a command in a guild and invalidates cache.""" """Adds an alias for a command in a guild and invalidates cache."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error(f"Pools not initialized in settings_manager, cannot add alias for command '{original_command_name}'.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot add alias for command '{original_command_name}'.")
return False return False
cache_key = _get_redis_key(guild_id, "cmd_aliases", original_command_name) cache_key = _get_redis_key(guild_id, "cmd_aliases", original_command_name)
@ -1937,8 +1937,8 @@ async def add_command_alias(guild_id: int, original_command_name: str, alias_nam
async def remove_command_alias(guild_id: int, original_command_name: str, alias_name: str) -> bool: async def remove_command_alias(guild_id: int, original_command_name: str, alias_name: str) -> bool:
"""Removes an alias for a command in a guild and invalidates cache.""" """Removes an alias for a command in a guild and invalidates cache."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.error(f"Pools not initialized in settings_manager, cannot remove alias for command '{original_command_name}'.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, cannot remove alias for command '{original_command_name}'.")
return False return False
cache_key = _get_redis_key(guild_id, "cmd_aliases", original_command_name) cache_key = _get_redis_key(guild_id, "cmd_aliases", original_command_name)
@ -1970,8 +1970,8 @@ async def remove_command_alias(guild_id: int, original_command_name: str, alias_
async def get_command_aliases(guild_id: int, original_command_name: str) -> list[str] | None: async def get_command_aliases(guild_id: int, original_command_name: str) -> list[str] | None:
"""Gets the list of aliases for a command in a guild, checking cache first. """Gets the list of aliases for a command in a guild, checking cache first.
Returns empty list if no aliases are set, None on error.""" Returns empty list if no aliases are set, None on error."""
if not _active_pg_pool or not _active_redis_pool: if _active_pg_pool is None or _active_redis_pool is None:
log.warning(f"Pools not initialized in settings_manager, returning None for command aliases '{original_command_name}'.") log.warning(f"Pools not initialized (PG: {id(_active_pg_pool)}, Redis: {id(_active_redis_pool)}) in settings_manager for guild {guild_id}, returning None for command aliases '{original_command_name}'.")
return None return None
cache_key = _get_redis_key(guild_id, "cmd_aliases", original_command_name) cache_key = _get_redis_key(guild_id, "cmd_aliases", original_command_name)
@ -2020,8 +2020,8 @@ async def get_all_command_customizations(guild_id: int) -> dict[str, dict[str, s
"""Gets all command customizations for a guild. """Gets all command customizations for a guild.
Returns a dictionary mapping original command names to a dict with 'name' and 'description' keys, Returns a dictionary mapping original command names to a dict with 'name' and 'description' keys,
or None on error.""" or None on error."""
if not _active_pg_pool: if _active_pg_pool is None:
log.error("Pools not initialized in settings_manager, cannot get command customizations.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}) in settings_manager for guild {guild_id}, cannot get command customizations.")
return None return None
try: try:
async with _active_pg_pool.acquire() as conn: async with _active_pg_pool.acquire() as conn:
@ -2046,8 +2046,8 @@ async def get_all_command_customizations(guild_id: int) -> dict[str, dict[str, s
async def get_all_group_customizations(guild_id: int) -> dict[str, str] | None: async def get_all_group_customizations(guild_id: int) -> dict[str, str] | None:
"""Gets all command group customizations for a guild. """Gets all command group customizations for a guild.
Returns a dictionary mapping original group names to custom names, or None on error.""" Returns a dictionary mapping original group names to custom names, or None on error."""
if not _active_pg_pool: if _active_pg_pool is None:
log.error("Pools not initialized in settings_manager, cannot get group customizations.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}) in settings_manager for guild {guild_id}, cannot get group customizations.")
return None return None
try: try:
async with _active_pg_pool.acquire() as conn: async with _active_pg_pool.acquire() as conn:
@ -2066,8 +2066,8 @@ async def get_all_group_customizations(guild_id: int) -> dict[str, str] | None:
async def get_all_command_aliases(guild_id: int) -> dict[str, list[str]] | None: async def get_all_command_aliases(guild_id: int) -> dict[str, list[str]] | None:
"""Gets all command aliases for a guild. """Gets all command aliases for a guild.
Returns a dictionary mapping original command names to lists of aliases, or None on error.""" Returns a dictionary mapping original command names to lists of aliases, or None on error."""
if not _active_pg_pool: if _active_pg_pool is None:
log.error("Pools not initialized in settings_manager, cannot get command aliases.") log.error(f"Pools not initialized (PG: {id(_active_pg_pool)}) in settings_manager for guild {guild_id}, cannot get command aliases.")
return None return None
try: try:
async with _active_pg_pool.acquire() as conn: async with _active_pg_pool.acquire() as conn: