Files
discord_bot/lib/CogsPrep.py
2022-08-31 18:28:07 +03:00

43 lines
1.2 KiB
Python

"""
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}')