added predefine feature (to be documented in README)

This commit is contained in:
dymik739 2022-10-31 22:12:48 +02:00
parent 30f53c08d4
commit f6e744a14d
1 changed files with 17 additions and 2 deletions

19
main.py
View File

@ -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: