151 lines
3.1 KiB
Python
151 lines
3.1 KiB
Python
from . import synapsenotify
|
|
|
|
name = "Synapse Attachment Push"
|
|
|
|
alias = "synapsepushattachments"
|
|
|
|
depends = [
|
|
"getrmassattachments",
|
|
"rmassattachmenttosynapse",
|
|
]
|
|
|
|
kind = "action"
|
|
|
|
showstatus = True
|
|
|
|
resolve = {
|
|
"get": {
|
|
"sender": ["messageitem", "senderId"],
|
|
"attachment_id": ["attachment_item", "id"],
|
|
#"message_body": ["messageitem", "text"],
|
|
"room_id": ["room_id"],
|
|
"timestamp": ["messageitem", "createdAt"],
|
|
"attachmenturl": ["uploadattachment"],
|
|
},
|
|
"construct": {
|
|
"matrixuser": [
|
|
"@rmass_",
|
|
{"resolved": "sender"},
|
|
":loxthelion.com",
|
|
],
|
|
},
|
|
"transform": {
|
|
"matrixuser": {
|
|
"@rmass_238302:loxthelion.com": "@lyncoln:loxthelion.com",
|
|
},
|
|
},
|
|
}
|
|
|
|
isrequest = True
|
|
|
|
keys = [
|
|
{
|
|
"keytitle": "msgtype",
|
|
"keyvalue": "m.image",
|
|
},
|
|
{
|
|
"keytitle": "body",
|
|
"keyvalue": "attachment.jpg",
|
|
},
|
|
{
|
|
"keytitle": "url",
|
|
"keyvalue": {
|
|
"resolved": "attachmenturl",
|
|
},
|
|
},
|
|
{
|
|
"keytitle": "info",
|
|
"keyvalue": {
|
|
"mimetype": "image/jpeg",
|
|
},
|
|
},
|
|
{
|
|
"keytitle": "com.loxthelion.rmass_message_id",
|
|
"keyvalue": {
|
|
"resolved": "attachment_id",
|
|
},
|
|
},
|
|
]
|
|
|
|
method = "PUT"
|
|
|
|
path = [
|
|
"https://loxthelion.com/_matrix/client/v3/rooms/",
|
|
{"resolved": "room_id"},
|
|
"/send/m.room.message/",
|
|
{"resolved": "attachment_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": "attachment_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": "attachment_id"},
|
|
# ],
|
|
# "export": {
|
|
# 0: "db_message_id",
|
|
# }
|
|
#}
|
|
|
|
#filters = [
|
|
# {
|
|
# "filterkey": "attachment_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}...",
|
|
# },
|
|
#] |