Files
rmmanager/plugins/rmass/actions/synapsegetroomalias.py
T
2026-10-27 19:10:33 -04:00

90 lines
1.9 KiB
Python

name = "Get Synapse Room Alias"
kind = "action"
showstatus = True
alias = "synapsegetroomalias"
depends = []
## PRE-RUNTIME ACTIONS
resolve = {
"get": {
"room_id": ["outmessageitem", "room_id"],
# "matrix_sender": ["outmessageitem", "sender"],
# "msg_type": ["outmessageitem", "type"],
"event_id": ["outmessageitem", "event_id"],
},
}
## RUNTIME ACTIONS
isrequest = True
method = "GET"
path = [
"https://loxthelion.com/_matrix/client/v3/rooms/",
{"resolved": "room_id"},
"/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
outputs = {
"room_alias": "alias"
}
readrow = {
"table": "message_mapping",
"columns": [
{"rmass_message_id": "INTEGER PRIMARY KEY"},
{"matrix_event_id": "TEXT NOT NULL UNIQUE"},
],
"searchcolumn": "matrix_event_id",
"rowsearchvalue": [
{"resolved": "event_id"},
],
"export": {
1: "db_event_id",
}
}
filters = [
{
"filterkey": "event_id",
"operator": "==",
"filtervalue": {"outputs": "db_event_id"},
"print": f"Message already delivered. Bypassing {name}",
},
# {
# "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}",
# },
]