Files
rmmanager/plugins/rmass/actions/synapsepushmessages.py
T

144 lines
3.0 KiB
Python

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"
}
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}...",
},
]