from . import synapsenotify name = "Synapse Message Push" kind = "action" showstatus = True #recursive = { # "source": "getmessage_select", # "reverse": True, # "label": "messageitem", #} resolve = { "get": { "sender": ["messageitem", "senderId"], "message_id": ["messageitem", "id"], "message_body": ["messageitem", "text"], "room_id": ["room_id"], "timestamp": ["messageitem", "createdAt"], #"attachments": ["messageitem", "attachments"] }, "construct": { "matrixuser": [ "@rmass_", {"resolved": "sender"}, ":loxthelion.com", ], }, "transform": { "matrixuser": { "@rmass_238302:loxthelion.com": "@lyncoln:loxthelion.com", }, }, } isrequest = True keys = [ { "keytitle": "msgtype", "keyvalue": "m.text", }, { "keytitle": "body", "keyvalue": { "resolved": "message_body", }, }, { "keytitle": "format", "keyvalue": "org.matrix.custom.html", }, { "keytitle": "formatted_body", "keyvalue": { "resolved": "message_body", }, }, { "keytitle": "com.loxthelion.rmass_message_id", "keyvalue": { "resolved": "message_id", }, }, ] method = "PUT" path = [ "https://loxthelion.com/_matrix/client/v3/rooms/", {"resolved": "room_id"}, "/send/m.room.message/", {"resolved": "message_id"}, "?user_id=", {"resolved": "matrixuser"}, "&ts=", {"resolved": "timestamp"}, "000" ] headers = { "Authorization": { "os": "AS_TOKEN", "prefix": "Bearer ", }, "Content-Type": "application/json", } outputs = { "event_id": "event_id" } extract = { "get": { "attachment_list": ["messageitem", "attachments"], }, } saverow = { "table": "message_mapping", "columns": [ {"rmass_message_id": "INTEGER PRIMARY KEY"}, {"matrix_event_id": "TEXT NOT NULL UNIQUE"}, ], "rowitems": [ {"resolved": "message_id"}, {"outputs": "event_id"}, ], } readrow = { "table": "message_mapping", "columns": [ {"rmass_message_id": "INTEGER PRIMARY KEY"}, {"matrix_event_id": "TEXT NOT NULL UNIQUE"}, ], "searchcolumn": "rmass_message_id", "rowsearchvalue": [ {"resolved": "message_id"}, ], "export": { 0: "db_message_id", } } filters = [ { "filterkey": "message_id", "operator": "==", "filtervalue": {"outputs": "db_message_id"}, "print": "Message already forwarded. Continuing...", }, ## To be uncommented once getrmassattachments is introduced # { # "filterkey": "attachments", # "operator": "is not", # "filtervalue": None, # "print": "Getting message attachments...", # "execute": "getrmassattachments" # }, { "filterkey": "room_id", "operator": "is", "filtervalue": None, "print": f"DM room is unavailable. Skipping {name}...", }, ]