From 5b619479043830eb4847243615756ec3f6276f21 Mon Sep 17 00:00:00 2001 From: Rafael Vargas Date: Sun, 31 Jul 2022 19:03:41 -0400 Subject: [PATCH] Fixing error in modules import when bot runned out of the root --- Config/Configs.py | 5 ++++- Config/Folder.py | 19 +++++++++++++++++++ Music/VulkanInitializer.py | 8 ++++---- main.py | 3 ++- 4 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 Config/Folder.py diff --git a/Config/Configs.py b/Config/Configs.py index 06efea9..7cd2ae3 100644 --- a/Config/Configs.py +++ b/Config/Configs.py @@ -1,5 +1,7 @@ +import os from decouple import config from Config.Singleton import Singleton +from Config.Folder import Folder class VConfigs(Singleton): @@ -17,7 +19,8 @@ class VConfigs(Singleton): self.CLEANER_MESSAGES_QUANT = 5 self.ACQUIRE_LOCK_TIMEOUT = 10 - self.COMMANDS_PATH = 'DiscordCogs' + self.COMMANDS_FOLDER_NAME = 'DiscordCogs' + self.COMMANDS_PATH = f'{Folder().rootFolder}{self.COMMANDS_FOLDER_NAME}' self.VC_TIMEOUT = 300 self.MAX_PLAYLIST_LENGTH = 50 diff --git a/Config/Folder.py b/Config/Folder.py new file mode 100644 index 0000000..f7f1379 --- /dev/null +++ b/Config/Folder.py @@ -0,0 +1,19 @@ +import os +from Config.Singleton import Singleton + + +class Folder(Singleton): + def __init__(self) -> None: + if not self.created: + filePath = os.path.dirname(__file__) + self.rootFolder = self.__getRootFolder(filePath) + + def __getRootFolder(self, current: str) -> str: + last_sep_index = -1 + for x in range(len(current) - 1, -1, -1): + if current[x] == os.sep: + last_sep_index = x + break + + path = current[:last_sep_index] + os.sep + return path diff --git a/Music/VulkanInitializer.py b/Music/VulkanInitializer.py index 9f847cc..3249d57 100644 --- a/Music/VulkanInitializer.py +++ b/Music/VulkanInitializer.py @@ -1,3 +1,4 @@ +import os from random import choices import string from discord.bot import Bot @@ -35,13 +36,12 @@ class VulkanInitializer: def __add_cogs(self, bot: Bot) -> None: try: cogsStatus = [] - for filename in listdir(f'./{self.__config.COMMANDS_PATH}'): + for filename in listdir(self.__config.COMMANDS_PATH): if filename.endswith('.py'): - cogPath = f'{self.__config.COMMANDS_PATH}.{filename[:-3]}' + cogPath = f'{self.__config.COMMANDS_FOLDER_NAME}.{filename[:-3]}' cogsStatus.append(bot.load_extension(cogPath, store=True)) if len(bot.cogs.keys()) != self.__getTotalCogs(): - print(cogsStatus) raise VulkanError(message='Failed to load some Cog') except VulkanError as e: @@ -49,7 +49,7 @@ class VulkanInitializer: def __getTotalCogs(self) -> int: quant = 0 - for filename in listdir(f'./{self.__config.COMMANDS_PATH}'): + for filename in listdir(self.__config.COMMANDS_PATH): if filename.endswith('.py'): quant += 1 return quant diff --git a/main.py b/main.py index c44bff4..3f1b745 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,8 @@ from Music.VulkanInitializer import VulkanInitializer - +from Config.Folder import Folder if __name__ == '__main__': + folder = Folder() initializer = VulkanInitializer(willListen=True) vulkanBot = initializer.getBot() vulkanBot.startBot()