Introduced stop signals and dependency gating for operations. Added mechanism to RMASS message sending protocol (Confirmed Working)

This commit is contained in:
Lyncoln
2026-10-26 13:12:42 -04:00
parent 55f1357aef
commit 5960e81bfd
13 changed files with 137 additions and 24 deletions
@@ -4,6 +4,12 @@ kind = "action"
alias = "getrmassattachmentid"
depends = [
"synapsegetattachment",
"getrmassattachmenturl",
"synapseattachmenttormass",
]
showstatus = True
resolve = {
@@ -4,6 +4,11 @@ kind = "action"
alias = "getrmassattachmenturl"
depends = [
"synapsegetroomalias",
"synapsegetattachment",
]
showstatus = True
resolve = {
@@ -47,4 +52,10 @@ filters = [
"filtervalue": "m.text",
"print": f"No image detected. Bypassing attachment push",
},
{
"filterkey": "event_id",
"operator": "==",
"filtervalue": {"outputs": "db_event_id"},
"print": f"Message already delivered. Bypassing {name}",
},
]
@@ -2,7 +2,13 @@ name = "Save RMASS Message ID"
kind = "action"
alias = "getmessage"
alias = "savermassmessageid"
depends = [
"synapsegetroomalias",
"rmassmessagepush",
"rmassattachmentpush",
]
showstatus = True
@@ -4,6 +4,16 @@ from . import synapsenotify
name = "RMASS Attachment Push"
alias = "rmassattachmentpush"
depends = [
"synapsegetroomalias",
"synapsegetattachment",
"getrmassattachmenturl",
"synapseattachmenttormass",
"getrmassattachmentid",
]
kind = "action"
showstatus = True
+12
View File
@@ -4,6 +4,12 @@ from . import synapsenotify
name = "RMASS Message Push"
alias = "rmassmessagepush"
depends = [
"synapsegetroomalias",
]
kind = "action"
showstatus = True
@@ -86,6 +92,12 @@ filters = [
"filtervalue": "m.image",
"print": f"Image detected. Pushing attachment",
},
{
"filterkey": "event_id",
"operator": "==",
"filtervalue": {"outputs": "db_event_id"},
"print": f"Message already delivered. Bypassing {name}",
},
# {
# "filterkey": "matrix_sender",
# "operator": "!=",
@@ -2,7 +2,12 @@ name = "Upload Attachments to RMASS"
kind = "action"
alias = "uploadrmassattachment"
alias = "synapseattachmenttormass"
depends = [
"synapsegetattachment",
"getrmassattachmenturl",
]
showstatus = True
+11 -1
View File
@@ -4,7 +4,11 @@ kind = "action"
showstatus = True
alias = "getsynapseattachment"
alias = "synapsegetattachment"
depends = [
"synapsegetroomalias",
]
## PRE-RUNTIME ACTIONS
@@ -56,4 +60,10 @@ filters = [
"filtervalue": "m.text",
"print": f"No image detected. Bypassing attachment push",
},
{
"filterkey": "event_id",
"operator": "==",
"filtervalue": {"outputs": "db_event_id"},
"print": f"Message already delivered. Bypassing {name}",
},
]
+14 -1
View File
@@ -1,7 +1,14 @@
name = "Get Last Synapse Message"
alias = "synapsegetlastmessage"
kind = "action"
depends = [
"synapsegetroomalias",
"rmassmessagepush",
]
showstatus = True
isrequest = True
@@ -11,7 +18,7 @@ method = "GET"
resolve = {
"get": {
#"sender": ["room_name"],
#"event_id": ["outmessageitem", "event_id"],
"event_id": ["outmessageitem", "event_id"],
#"message_body": ["outmessageitem", "content", "body"],
"room_id": ["outmessageitem", "room_id"],
#"timestamp": ["outmessageitem", "origin_server_ts"],
@@ -53,4 +60,10 @@ filters = [
"filtervalue": "error",
"print": f"Failed to send message to RMASS. Bypassing save during {name}...",
},
{
"filterkey": "event_id",
"operator": "==",
"filtervalue": {"outputs": "db_event_id"},
"print": f"Message already delivered. Bypassing {name}",
},
]
+26 -9
View File
@@ -4,6 +4,8 @@ kind = "action"
showstatus = True
alias = "synapsegetroomalias"
## PRE-RUNTIME ACTIONS
resolve = {
@@ -11,7 +13,7 @@ resolve = {
"room_id": ["outmessageitem", "room_id"],
# "matrix_sender": ["outmessageitem", "sender"],
# "msg_type": ["outmessageitem", "type"],
# "echo_tag": ["outmessageitem", "content", "com.loxthelion.rmass_message_id"],
"event_id": ["outmessageitem", "event_id"],
},
}
@@ -42,13 +44,28 @@ outputs = {
"room_alias": "alias"
}
#filters = [
# {
# "filterkey": "outmessageitem",
# "operator": "in",
# "filtervalue": "state_key",
# "print": f"Excluding state.key event during {name}",
# },
readrow = {
"table": "message_mapping",
"columns": [
{"rmass_message_id": "INTEGER PRIMARY KEY"},
{"matrix_event_id": "TEXT NOT NULL UNIQUE"},
],
"searchcolumn": "matrix_event_id",
"rowsearchvalue": [
{"resolved": "event_id"},
],
"export": {
1: "db_event_id",
}
}
filters = [
{
"filterkey": "event_id",
"operator": "==",
"filtervalue": {"outputs": "db_event_id"},
"print": f"Message already delivered. Bypassing {name}",
},
# {
# "filterkey": "matrix_sender",
# "operator": "!=",
@@ -67,4 +84,4 @@ outputs = {
# "filtervalue": None,
# "print": f"Excluding imported message event during {name}",
# },
#]
]