Introduced attachment push to RMASS (Working State)

This commit is contained in:
Lyncoln
2026-10-26 09:36:19 -04:00
parent a0a4a4cded
commit 9c005763ed
5 changed files with 301 additions and 0 deletions
@@ -0,0 +1,44 @@
name = "Get RMASS Message Attachment ID"
kind = "action"
alias = "getrmassattachmentid"
showstatus = True
resolve = {
"get": {
"path": ["lastmessage", 0, "content", "com.loxthelion.rmass_message_id"],
"msgtype": ["outmessageitem", "content", "msgtype"],
}
}
isrequest = True
method = "GET"
path = [
"https://rentmasseur.com/api/v1/mailbox/",
{"resolved": "path"},
"/attachments"
]
outputs = {
"rmass_attachment_id": "id"
}
headers = {
"Authorization": {
"output": "access_token",
"prefix": "Bearer ",
},
}
filters = [
{
"filterkey": "msgtype",
"operator": "==",
"filtervalue": "m.text",
"print": f"No image detected. Bypassing attachment push",
},
]
@@ -0,0 +1,50 @@
name = "Get RMASS Message Attachment URL"
kind = "action"
alias = "getrmassattachmenturl"
showstatus = True
resolve = {
"get": {
"path": ["lastmessage", 0, "content", "com.loxthelion.rmass_message_id"],
"msgtype": ["outmessageitem", "content", "msgtype"],
}
}
isrequest = True
method = "GET"
#loaddata = [
# "access_token",
# "refresh_token",
#]
#savepath = os.environ["TOKEN_STORE"]
path = [
"https://rentmasseur.com/api/v1/media/upload?mediaType=30&conversationId=",
{"resolved": "path"},
]
outputs = {
"uploadurl": "url"
}
headers = {
"Authorization": {
"output": "access_token",
"prefix": "Bearer ",
},
}
filters = [
{
"filterkey": "msgtype",
"operator": "==",
"filtervalue": "m.text",
"print": f"No image detected. Bypassing attachment push",
},
]
@@ -0,0 +1,89 @@
import os
from . import synapsenotify
name = "RMASS Attachment Push"
kind = "action"
showstatus = True
#Resolve sources its data from outputs. Ensure keys are in outputs
resolve = {
"get": {
"rmass_user": ["room_alias"],
#"event_id": ["outmessageitem", "event_id"],
"message_body": ["outmessageitem", "content", "body"],
"msgtype": ["outmessageitem", "content", "msgtype"],
"room_id": ["outmessageitem", "room_id"],
#"timestamp": ["outmessageitem", "origin_server_ts"],
"rmass_attach": ["response_list", 0, "id"],
"path": ["lastmessage", 0, "content", "com.loxthelion.rmass_message_id"],
#"attachment": ["outmessageitem", "url"],
#"msg_type": ["outmessageitem", "type"],
#"echo_tag": ["outmessageitem", "content", "com.loxthelion.rmass_message_id"],
},
"deconstruct": {
"rmass_user" : [
"#rmass_dm_",
":loxthelion.com",
],
},
"construct": {
"rmass_attach" : [
"a_",
{"resolved": "rmass_attach"},
],
},
}
keys = [
#{
# "keytitle": "message",
# "keyvalue": {
# "resolved": "message_body",
# },
#},
{
"keytitle": "message",
"keyvalue": "Here's a photo!",
},
#{
# "keytitle": "profileId",
# "keyvalue": {
# "resolved": "rmass_user",
# },
#},
{
"keytitle": "attachmentIds",
"keyvalue": {
"resolved": "rmass_attach",
},
},
]
method = "POST"
path = [
"https://rentmasseur.com/api/v1/mailbox/",
{"resolved": "path"},
]
headers = {
"Authorization": {
"output": "access_token",
"prefix": "Bearer ",
},
}
##Filter test against recursiveset
filters = [
{
"filterkey": "msgtype",
"operator": "==",
"filtervalue": "m.text",
"print": f"No image detected. Bypassing attachment push",
},
]
@@ -0,0 +1,59 @@
name = "Upload Attachments to RMASS"
kind = "action"
alias = "uploadrmassattachment"
showstatus = True
isrequest = True
resolve = {
"get": {
"uploadurl": ["uploadurl"],
"msgtype": ["outmessageitem", "content", "msgtype"],
"rmass_user": ["room_alias"],
"path": ["lastmessage", 0, "content", "com.loxthelion.rmass_message_id"],
},
"deconstruct": {
"rmass_user" : [
"#rmass_dm_",
":loxthelion.com",
],
},
}
method = "POST"
#To add resolution suffix, second item must be a dictionary. References the "path" library under resolved
path = [
{"resolved": "uploadurl"},
]
headers = {
"Authorization": {
"output": "access_token",
"prefix": "Bearer ",
},
}
requestfile = "synapse_attachment"
requestdata = {
"mediaType": "30",
"emailId": {"resolved": "path"}
}
outputs = {
"rmass_uploaded_image": "url",
"mediaId": "mediaId"
}
filters = [
{
"filterkey": "msgtype",
"operator": "==",
"filtervalue": "m.text",
"print": f"No image detected. Bypassing attachment push",
},
]
@@ -0,0 +1,59 @@
name = "Get Synapse Attachment"
kind = "action"
showstatus = True
alias = "getsynapseattachment"
## PRE-RUNTIME ACTIONS
resolve = {
"get": {
"room_id": ["outmessageitem", "room_id"],
# "matrix_sender": ["outmessageitem", "sender"],
"msgtype": ["outmessageitem", "content", "msgtype"],
"synapse_image": ["outmessageitem", "content", "url"],
},
"deconstruct": {
"synapse_image" : [
#"#rmass_dm_",
"mxc://loxthelion.com/",
],
},
}
## RUNTIME ACTIONS
isrequest = True
method = "GET"
path = [
#"https://loxthelion.com/_matrix/client/v3/rooms/",
"https://loxthelion.com/_matrix/client/v1/media/download/loxthelion.com/",
{"resolved": "synapse_image"},
#"/state/m.room.canonical_alias",
#"?user_id=%40rmass_bridge%3Aloxthelion.com"
]
headers = {
"Authorization": {
"os": "AS_TOKEN",
"prefix": "Bearer ",
},
"Content-Type": "application/json",
}
## POST-RUNTIME ACTIONS
image = "synapse_attachment"
filters = [
{
"filterkey": "msgtype",
"operator": "==",
"filtervalue": "m.text",
"print": f"No image detected. Bypassing attachment push",
},
]