diff --git a/main.py b/main.py index 2ece725..22145fe 100644 --- a/main.py +++ b/main.py @@ -21,17 +21,27 @@ def readfile(filename): # module object classes class ModuleV1: - def __init__(self, path, code, enabled, alias): + def __init__(self, path, code, enabled, alias, predefine): self.version = 1 self.enabled = enabled self.code = code self.alias = alias self.path = path + self.predefine = predefine + + if self.predefine: + self.predefine() # set environmental variables def set_env(self): self.RESPONCE = "" + def predefine(self): + try: + exec(self.predefine) + except Exception as e: + print("[ERROR] module: module \"{}\" ({}) raised exception \"{}\" during predefine stage, disabling it...".format(self.path, self.alias, e)) + # running the module def process(self, msg): self.set_env() @@ -83,7 +93,12 @@ class ModuleControlUnit: else: alias = None - self.modules.append( ModuleV1( "modules/{}/".format(folder), code, enabled, alias ) ) + if "predefine" in meta: + predefine = readfile("modules/{}/{}".format(folder, meta["predefine"])) + else: + predefine = False + + self.modules.append( ModuleV1( "modules/{}/".format(folder), code, enabled, alias, predefine ) ) print("[INFO] reload_modules: successfully loaded {} as {} (start_on_boot: {})".format(folder, alias, enabled)) else: