Added recursive action behavior to recursively go over selected messages

This commit is contained in:
Lyncoln
2026-10-14 18:28:06 -04:00
parent b4bb3b0c05
commit 3acd3fafc5
26 changed files with 44 additions and 104 deletions
Binary file not shown.
+1 -1
View File
@@ -22,7 +22,7 @@ def executeRequest(action, outputs, resolved):
# session.cookies.set(
# sessioncookies[cookie_name] = response[cookie_key],
print(request)
#print(request)
#print(response.status_code)
#print(response.text)
return response, outputs
+12 -4
View File
@@ -3,10 +3,18 @@ from core.runtime.runtimecontract import buildRuntimeAttr, buildPreRuntimeAttr
def buildAction (action, outputs):
outputs, resolved = buildPreRuntimeAttr(action, outputs)
#outputs, resolved = buildPreRuntimeAttr(action, outputs)
response, outputs = executeRequest(action, outputs, resolved)
outputs, response = buildRuntimeAttr(action, outputs, response)
if hasattr(action, "recursive"):
for item in outputs[action.recursive["source"]]:
outputs[action.recursive["label"]] = item
outputs, resolved = buildPreRuntimeAttr(action, outputs)
response, outputs = executeRequest(action, outputs, resolved)
outputs, response = buildRuntimeAttr(action, outputs, response)
else:
outputs, resolved = buildPreRuntimeAttr(action, outputs)
response, outputs = executeRequest(action, outputs, resolved)
outputs, response = buildRuntimeAttr(action, outputs, response)
return outputs, response
+2 -2
View File
@@ -2,7 +2,7 @@ import logging
from core.runtime.managefailure import manageFailure
from core.execution.action.action import buildAction
from core.runtime.skipstep import skipStep
from core.runtime.recursiveactions import recursiveAction
from core.runtime.recursive import recursiveSet
def buildOperation(definition):
actions = definition.actions
@@ -15,7 +15,7 @@ def buildOperation(definition):
continue
if action == "recursiveset":
outputs = recursiveAction(definition, outputs)
outputs = recursiveSet(definition, outputs)
else:
outputs, response = buildAction(action, outputs)
-1
View File
@@ -1 +0,0 @@
from . import manager
Binary file not shown.
Binary file not shown.
-25
View File
@@ -1,25 +0,0 @@
from datetime import datetime
from core.operation.operation import buildOperation
def buildManager(definition):
operations = definition.operations
current_time = datetime.now().time()
for operation in operations:
if hasattr(operation, "role") and operation.role == "activate":
if definition.uptime <= current_time <= definition.downtime:
while True:
current_time = datetime.now().time()
outputs = buildOperation(operation)
if hasattr(operation, "role") and operation.role == "deactivate":
if definition.downtime <= current_time <= definition.uptime:
while True:
current_time = datetime.now().time()
outputs = buildOperation(operation)
# if hasattr(operation, "role") and role == offline:
# outputs = buildOperation(operation)
Binary file not shown.
@@ -1,5 +1,20 @@
from core.execution.action.action import buildAction
def recursiveSet(definition, outputs):
recursiveset = definition.recursiveset["actions"]
for item in outputs[definition.recursiveset["source"]]:
outputs[definition.recursiveset["outputlabel"]] = item
#outputs["recursive"] = item
for job in recursiveset:
outputs, response = buildAction(job, outputs)
print(outputs["profile"])
print(outputs["messages"])
return outputs
from core.execution.action.action import buildAction
def recursiveAction(definition, outputs):
recursiveset = definition.recursiveset["actions"]
for item in outputs[definition.recursiveset["source"]]:
@@ -12,4 +27,3 @@ def recursiveAction(definition, outputs):
print(outputs["profile"])
print(outputs["messages"])
return outputs
@@ -6,8 +6,6 @@ kind = "action"
showstatus = True
astoken = os.environ["AS_TOKEN"]
resolve = {
"sender": ["messages", 0, "senderId"],
"space_id": ["space_id"],
@@ -25,11 +23,6 @@ keys = [
method = "PUT"
#path = [
# "https://loxthelion.com/_matrix/client/v3/profile/rmass_",
# {"resolved": "sender"},
# {"suffix": "/displayname"},
#]
path = [
"https://loxthelion.com/_matrix/client/v3/rooms/",
{"resolved": "space_id"},
@@ -46,6 +39,3 @@ headers = {
"Content-Type": "application/json",
}
#outputs = {
# "user_id": "user_id",
#}
@@ -10,15 +10,9 @@ astoken = os.environ["AS_TOKEN"]
resolve = {
"sender": ["messages", 0, "senderId"],
#"messageid": ["message", "id"],
"username": ["profile", "username"],
#"location": ["profile", "location"],
}
keys = [
#{
# "keytitle": "type",
# "keyvalue": "m.login.application_service",
#},
{
"keytitle": "displayname",
"keyvalue": {
@@ -29,11 +23,6 @@ keys = [
method = "PUT"
#path = [
# "https://loxthelion.com/_matrix/client/v3/profile/rmass_",
# {"resolved": "sender"},
# {"suffix": "/displayname"},
#]
path = [
"https://loxthelion.com/_matrix/client/v3/profile/@rmass_",
{"resolved": "sender"},
@@ -50,6 +39,3 @@ headers = {
"Content-Type": "application/json",
}
#outputs = {
# "user_id": "user_id",
#}
+1 -4
View File
@@ -6,14 +6,11 @@ kind = "action"
showstatus = True
astoken = os.environ["AS_TOKEN"]
resolve = {
"sender": ["messages", 0, "senderId"],
#"messageid": ["message", "id"],
"username": ["profile", "username"],
#"location": ["profile", "location"],
}
keys = [
{
"keytitle": "name",
+12 -6
View File
@@ -6,13 +6,17 @@ kind = "action"
showstatus = True
recursive = {
"source": "messages",
"label": "messageitem",
}
resolve = {
"sender": ["messages", 0, "senderId"],
"message_id": ["messages", 0, "id"],
#"username": ["profile", "username"],
"message_body": ["messages", 0, "text"],
"sender": ["messageitem", "senderId"],
"message_id": ["messageitem", "id"],
"message_body": ["messageitem", "text"],
"room_id": ["dmroom_id"],
#"location": ["profile", "location"],
"timestamp": ["messageitem", "createdAt"],
}
keys = [
{
@@ -36,7 +40,9 @@ path = [
{"resolved": "message_id"},
"?user_id=@rmass_",
{"resolved": "sender"},
":loxthelion.com",
":loxthelion.com&ts=",
{"resolved": "timestamp"},
"000"
]
headers = {
-4
View File
@@ -6,13 +6,9 @@ kind = "action"
showstatus = True
astoken = os.environ["AS_TOKEN"]
resolve = {
"sender": ["messages", 0, "senderId"],
#"messageid": ["message", "id"],
"username": ["profile", "username"],
#"location": ["profile", "location"],
}
keys = [
{
-24
View File
@@ -1,24 +0,0 @@
import os
from datetime import datetime
from . import setavailableoperation
operations = [
setavailableoperation,
#setunavailableoperation
#setnotsetoperation
]
uptime = datetime.strptime(
os.environ["TIME_UPTIME"],
"%H:%M"
).time
downtime = datetime.strptime(
os.environ["TIME_UPTIME"],
"%H:%M"
).time
offline = datetime.strptime(
os.environ["TIME_OFFLINE"],
"%H:%M"
).time
@@ -1,7 +0,0 @@
from . import getcsrf, login, checkavailability
actions = [
getcsrf,
login,
checkavailability,
]
+1 -1
View File
@@ -1 +1 @@
{"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTIwMTA1MDUsIm5iZiI6MTc5MjAxMDMyNSwic3ViIjoiMjM4MzAyIiwidXNlcm5hbWUiOiJYeHhvdGlxIiwidXNlclR5cGUiOjEsInN0YWdlTmFtZSI6Ilh4eG90aXEiLCJhcHByb3ZlZCI6MSwibG9jYXRpb25JZCI6NDcyLCJzZWFyY2hDaXR5IjoiYXRsYW50YSIsImNvdW50cnlTaG9ydCI6IlVTIiwic2Vzc2lvbkNvdW50cnlDb250aW5lbnQiOiJOQSIsImlzRnJvemVuIjowLCJsb2NhdGlvbkxhYmVsIjoiQXRsYW50YSwgR0EiLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MjAxMDM4NX0.oMvItXuv7d-HRO_MOChP4NfIJXSqJ7YjADFtoB5xA_GgfkL5fp6TSSPFpzMpKEhggDnlttZXQ_82-av-LXaW4A", "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTQ2MDIzODUsIm5iZiI6MTc5MjAxMDMyNSwianRpIjoiMGdHdnpEZFdjNjdUdlJDZU9GbC9yRkp5VGJ4WS9oUGo2Yk5pWDR0bzFXWT0iLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MjAxMDM4NSwic3ViIjoiMjM4MzAyIn0.N921TJnAA6G_Patf-4qtQMNKQlBHGoIu-A1lbTWTvJGZv2LFArCUjv9DW071iezjY2PuECgdoNVPiwsTHOOJTg"}
{"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTIwMTYxNzYsIm5iZiI6MTc5MjAxNTk5Niwic3ViIjoiMjM4MzAyIiwidXNlcm5hbWUiOiJYeHhvdGlxIiwidXNlclR5cGUiOjEsInN0YWdlTmFtZSI6Ilh4eG90aXEiLCJhcHByb3ZlZCI6MSwibG9jYXRpb25JZCI6NDcyLCJzZWFyY2hDaXR5IjoiYXRsYW50YSIsImNvdW50cnlTaG9ydCI6IlVTIiwic2Vzc2lvbkNvdW50cnlDb250aW5lbnQiOiJOQSIsImlzRnJvemVuIjowLCJsb2NhdGlvbkxhYmVsIjoiQXRsYW50YSwgR0EiLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MjAxNjA1Nn0.x80ROCVbjmvc7D4FCbcFB7fWdvLL7Wm3TmBS8XN-lL-UyYGT1zGbmr_kDLpJ06I9-RtcKvkrX52cQKDHqfFplg", "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTQ2MDgwNTYsIm5iZiI6MTc5MjAxNTk5NiwianRpIjoiLy9xblJvU3Voc3F2ZVRXUENURkRoRlVjRjhCTCsvV2hYZzJLVFErblN0az0iLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MjAxNjA1Niwic3ViIjoiMjM4MzAyIn0.4nTN0v_hXVE2XwCIS5ZH6zGp1TE3F9aQbOEasiSFu-Nvc_1fT4MsrXL9nr1FGgo_5N6uSfbgYAOioa7fyzucJA"}