From eea6888e5ecab703b8fe2c8b49fae6765a0cb3c9 Mon Sep 17 00:00:00 2001 From: Lyncoln Date: Mon, 26 Oct 2026 10:07:38 -0400 Subject: [PATCH] Added data loading and message type filtering for pushing messages to RMASS from synapse --- plugins/rmass/actions/rmassmessagepush.py | 53 +++++++++++++++++++++-- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/plugins/rmass/actions/rmassmessagepush.py b/plugins/rmass/actions/rmassmessagepush.py index 21d4901..1ef3213 100644 --- a/plugins/rmass/actions/rmassmessagepush.py +++ b/plugins/rmass/actions/rmassmessagepush.py @@ -1,3 +1,5 @@ +import os + from . import synapsenotify name = "RMASS Message Push" @@ -9,14 +11,19 @@ showstatus = True #Resolve sources its data from outputs. Ensure keys are in outputs resolve = { "get": { - "sender": ["room_name"], + "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"], + #"matrix_sender": ["outmessageitem", "sender"], + #"attachment": ["outmessageitem", "url"], + #"msg_type": ["outmessageitem", "type"], + #"echo_tag": ["outmessageitem", "content", "com.loxthelion.rmass_message_id"], }, "deconstruct": { - "sender" : [ + "rmass_user" : [ "#rmass_dm_", ":loxthelion.com", ], @@ -33,7 +40,7 @@ keys = [ { "keytitle": "profileId", "keyvalue": { - "resolved": "sender", + "resolved": "rmass_user", }, }, ] @@ -51,6 +58,13 @@ headers = { }, } +loaddata = [ + "access_token", + "refresh_token", +] + +savepath = os.environ["TOKEN_STORE"] + responsepolicy = [ { "statuscode": 400, @@ -58,3 +72,36 @@ responsepolicy = [ "execute": synapsenotify, } ] + +outputs = { + "rmass_sent_status": "status" +} + +##Filter test against recursiveset + +filters = [ + { + "filterkey": "msgtype", + "operator": "==", + "filtervalue": "m.image", + "print": f"Image detected. Pushing attachment", + }, +# { +# "filterkey": "matrix_sender", +# "operator": "!=", +# "filtervalue": "@lyncoln:loxthelion.com", +# "print": f"Excluding message loop item during {name}", +# }, +# { +# "filterkey": "msg_type", +# "operator": "!=", +# "filtervalue": "m.room.message", +# "print": f"Excluding non-room message event during {name}", +# }, +# { +# "filterkey": "echo_tag", +# "operator": "is not", +# "filtervalue": None, +# "print": f"Excluding imported message event during {name}", +# }, +]