43 lines
1.2 KiB
Python
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}')
|