Improve loader module to manage custom modules in the database

- Ensure the database is updated when modules are loaded, unloaded, or all modules are unloaded.
- On userbot start, fetch the list of modules from the database and load any missing modules.
This commit is contained in:
Abhi
2025-02-07 12:10:14 +05:30
parent 3cd2e918e9
commit dc7a8a5b23
2 changed files with 41 additions and 4 deletions

View File

@@ -154,6 +154,10 @@ async def loadmod(_, message: Message):
)
os.rename(file_name, f"./modules/custom_modules/{module_name}.py")
all_modules = db.get("custom.modules", "allModules", [])
if module_name not in all_modules:
all_modules.append(module_name)
db.set("custom.modules", "allModules", all_modules)
await message.edit(
f"<b>The module <code>{module_name}</code> is loaded!\nRestarting...</b>"
)
@@ -189,6 +193,10 @@ async def unload_mods(_, message: Message):
cwd=f"{BASE_PATH}/musicbot",
)
shutil.rmtree(f"{BASE_PATH}/musicbot")
all_modules = db.get("custom.modules", "allModules", [])
if module_name in all_modules:
all_modules.remove(module_name)
db.set("custom.modules", "allModules", all_modules)
await message.edit(
f"<b>The module <code>{module_name}</code> removed!\nRestarting...</b>"
)
@@ -253,6 +261,7 @@ async def unload_all_mods(_, message: Message):
if not os.path.exists(f"{BASE_PATH}/modules/custom_modules"):
return await message.edit("<b>You don't have any modules installed</b>")
shutil.rmtree(f"{BASE_PATH}/modules/custom_modules")
db.set("custom.modules", "allModules", [])
await message.edit("<b>Successfully unloaded all modules!\nRestarting...</b>")
db.set(