""" lib.CogsPrepare ~~~~~~~~~~~~~ Loads, unloads Cogs files cog_list: return list of cog filenames work_with_cogs: loads, reloads and unloads cogs files """ import traceback from os import listdir from disnake.ext import commands from .Logger import logger def cog_list(): cogs_list = [] for _filename in listdir('./cogs'): if _filename.endswith('.py'): cogs_list.append(_filename[:-3]) return cogs_list async def work_with_cogs(what_do, bot): for _filename in cog_list(): if what_do == "load": try: bot.load_extension(f'cogs.{_filename}') logger.info(f'Loaded cog {_filename}') except commands.ExtensionNotFound: logger.error(f"Error: {_filename} couldn't be find to load.") except commands.ExtensionFailed as error: logger.error(f'Error: {_filename} failed to load properly.\n\t{error}\n\n{traceback.format_exc()}') except commands.ExtensionError: logger.error(f'Error: unknown error with {_filename}') elif what_do == 'unload': bot.unload_extension(f'cogs.{_filename}') elif what_do == 'reload': bot.reload_extension(f'cogs.{_filename}')