diff --git a/core/runtime/applyconditions.py b/core/runtime/applyconditions.py index 1dbff6f..1e58913 100644 --- a/core/runtime/applyconditions.py +++ b/core/runtime/applyconditions.py @@ -1,32 +1,58 @@ -def applyConditions(definition, dictionary): +def applyConditions(definition, dictionary, outputs): if hasattr(definition, "filters"): - print("DEBUG DICTIONARY PASS") - print(dictionary) + #print("DEBUG DICTIONARY PASS") + #print(dictionary) for filter in definition.filters: - - if filter["operator"] == ">=": - if dictionary.get(filter["filterkey"]) >= filter["filtervalue"]: - print(filter["print"]) - return True + #print(filter) + try: + if isinstance(filter["filtervalue"], dict): + #print("DEBUGGING INT ERROR") + #print(filter["filtervalue"]) + resolvedoutput = outputs[filter["filtervalue"]["outputs"]] + #print(resolvedoutput) + #filter["filtervalue"] = outputs[filter["filtervalue"]["outputs"]] + #print(outputs[filter["filtervalue"]["outputs"]]) + filter["filtervalue"] = resolvedoutput - if filter["operator"] == "<=": - if dictionary.get(filter["filterkey"]) <= filter["filtervalue"]: - print(filter["print"]) - return True + + if filter["operator"] == ">=": + if dictionary.get(filter["filterkey"]) >= filter["filtervalue"]: + print(filter["print"]) + return True, filter - if filter["operator"] == "==": - if dictionary.get(filter["filterkey"]) == filter["filtervalue"]: - print(filter["print"]) - return True + if filter["operator"] == "<=": + if dictionary.get(filter["filterkey"]) <= filter["filtervalue"]: + print(filter["print"]) + return True, filter - if filter["operator"] == "!=": - if dictionary.get(filter["filterkey"]) != filter["filtervalue"]: - print(filter["print"]) - return True + if filter["operator"] == "==": + if dictionary.get(filter["filterkey"]) == filter["filtervalue"]: + print(filter["print"]) + return True, filter + + if filter["operator"] == "!=": + if dictionary.get(filter["filterkey"]) != filter["filtervalue"]: + print(filter["print"]) + return True, filter + + if filter["operator"] == ">": + if dictionary.get(filter["filterkey"]) > filter["filtervalue"]: + print(filter["print"]) + return True, filter + + if filter["operator"] == "<": + if dictionary.get(filter["filterkey"]) < filter["filtervalue"]: + print(filter["print"]) + return True, filter + + if filter["operator"] == "in": + if filter["filtervalue"] in dictionary: + print(filter["print"]) + return True, filter + + except KeyError: + print("Recording last unread for future checks") + continue + + return False, None - if filter["operator"] == "in": - if filter["filtervalue"] in dictionary: - print(filter["print"]) - return True - - return False \ No newline at end of file diff --git a/core/server/createlistener.py b/core/server/createlistener.py index 0802a97..23ac18a 100644 --- a/core/server/createlistener.py +++ b/core/server/createlistener.py @@ -33,7 +33,7 @@ def buildListener(listener, self): for item in outputs[listener.recursive["source"]]: - if applyConditions(listener, item): + if applyConditions(listener, item, outputs): continue # Process and forward to RMASS