applyConditions filter added and in working state. Needs to be made more generic by removing specific output target

This commit is contained in:
Lyncoln
2026-10-17 10:46:20 -04:00
parent 21b076a3fe
commit 434d0408ee
15 changed files with 68 additions and 16 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+26
View File
@@ -0,0 +1,26 @@
def applyConditions(definition, outputs):
if hasattr(definition, "filters"):
for filter in definition.filters:
print("DEBUG applyConditons filter item consumption")
print(outputs["event"])
item = outputs["event"]
#current_value = item[filter["filterkey"]]
if filter["operator"] == ">=":
if item[filter["filterkey"]] >= filter["filtervalue"]:
print("Applying filters")
return True
if filter["operator"] == "==":
if item[filter["filterkey"]] == filter["filtervalue"]:
print("Applying filters")
return True
if filter["operator"] == "in":
if filter["filtervalue"] in outputs[filter["filterkey"]]:
print("Applying filters")
return True
return False
+1 -1
View File
@@ -20,7 +20,7 @@ def buildOutput(response, action, outputs):
for output_name, response_key in action.outputs.items():
if key == response_key:
outputs[output_name] = value
#print (response_data)
else:
print("No response received"),
Binary file not shown.
+22 -13
View File
@@ -1,5 +1,6 @@
import json
from core.runtime.outputs import buildOutput
from core.runtime.applyconditions import applyConditions
from core.execution.operation import buildOperation
def buildListener(listener, self):
@@ -20,23 +21,31 @@ def buildListener(listener, self):
#if applyConditions(listener, outputs)
# continue
print(outputs)
for event in outputs[listener.recursive["source"]]:
#print(outputs)
print("DEBUG")
print(listener.recursive["source"])
for item in outputs[listener.recursive["source"]]:
outputs[listener.recursive["label"]] = item
if "state_key" in event:
continue
if event.get("sender") != "@lyncoln:loxthelion.com":
continue
if "com.loxthelion.rmass_message_id" in event.get("content", {}):
continue
if event.get("type") == "m.room.message":
print("DEBUG item selection")
#print(listener.recursive["label"])
print(item)
print(outputs["event"])
if applyConditions(listener, outputs):
continue
#if "state_key" in event:
#continue
#if event.get("sender") != "@lyncoln:loxthelion.com":
#continue
#if "com.loxthelion.rmass_message_id" in event.get("content", {}):
#continue
#if event.get("type") == "m.room.message":
# Process and forward to RMASS
outputs = buildOperation(listener.execute, outputs)
#outputs = buildOperation(listener.execute, outputs)
#print(event)
self.send_response(200)
self.send_header("Content-Type", "application/json")