Compare commits
3 Commits
30f53c08d4
...
cf2223f40a
Author | SHA1 | Date |
---|---|---|
dymik739 | cf2223f40a | |
dymik739 | 2f6d1113b8 | |
dymik739 | f6e744a14d |
19
main.py
19
main.py
|
@ -21,17 +21,27 @@ def readfile(filename):
|
||||||
|
|
||||||
# module object classes
|
# module object classes
|
||||||
class ModuleV1:
|
class ModuleV1:
|
||||||
def __init__(self, path, code, enabled, alias):
|
def __init__(self, path, code, enabled, alias, predefine):
|
||||||
self.version = 1
|
self.version = 1
|
||||||
self.enabled = enabled
|
self.enabled = enabled
|
||||||
self.code = code
|
self.code = code
|
||||||
self.alias = alias
|
self.alias = alias
|
||||||
self.path = path
|
self.path = path
|
||||||
|
self.predefine = predefine
|
||||||
|
|
||||||
|
if self.predefine:
|
||||||
|
self.predefine()
|
||||||
|
|
||||||
# set environmental variables
|
# set environmental variables
|
||||||
def set_env(self):
|
def set_env(self):
|
||||||
self.RESPONCE = ""
|
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
|
# running the module
|
||||||
def process(self, msg):
|
def process(self, msg):
|
||||||
self.set_env()
|
self.set_env()
|
||||||
|
@ -83,7 +93,12 @@ class ModuleControlUnit:
|
||||||
else:
|
else:
|
||||||
alias = None
|
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))
|
print("[INFO] reload_modules: successfully loaded {} as {} (start_on_boot: {})".format(folder, alias, enabled))
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"index_file": "index.py",
|
"index_file": "index.py",
|
||||||
"start_on_boot": true
|
"start_on_boot": false
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"trigger_lists": [
|
||||||
|
["коли", "тест", "обж"]
|
||||||
|
],
|
||||||
|
"responce_text": "Тести з ОБЖ необхідно проходити лише тим студентам, які не були на практичному занятті. Якщо Ви були на практиці, але все одно пройдете тест, то ризикуєте отримати нижчу оцінку та знизити свій загальний бал"
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
msg = self.MESSAGE["text"].lower()
|
||||||
|
|
||||||
|
responce_given = False
|
||||||
|
|
||||||
|
for file in os.listdir(self.path + "db/"):
|
||||||
|
if responce_given:
|
||||||
|
break
|
||||||
|
|
||||||
|
try:
|
||||||
|
criteria = json.loads( readfile(self.path + "db/" + file) )
|
||||||
|
|
||||||
|
for wordset in criteria["trigger_lists"]:
|
||||||
|
all_words_in = True
|
||||||
|
for word in wordset:
|
||||||
|
if not word in msg:
|
||||||
|
all_words_in = False
|
||||||
|
break
|
||||||
|
|
||||||
|
if all_words_in:
|
||||||
|
self.RESPONCE = criteria["responce_text"]
|
||||||
|
responce_given = True
|
||||||
|
break
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print("[WARN] module : qna-basic: db file {} raised exception \"{}\"".format(file, e))
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"index_file": "index.py",
|
||||||
|
"start_on_boot": true,
|
||||||
|
"alias": "qna-basic"
|
||||||
|
}
|
Loading…
Reference in New Issue