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

152 lines
3.1 KiB
Python

import os
name = "Synapse Create DM Room"
kind = "action"
showstatus = True
alias = "synapsecreatedmroom"
depends = []
resolve = {
"get": {
"sender": ["messageheaders", "userCard", "id"],
"location": ["profile", "location"],
"username": ["messageheaders", "userCard", "username"],
},
"construct": {
"matrixuser": [
"@rmass_",
{"resolved": "sender"},
":loxthelion.com",
],
"matrixdm": [
"rmass_dm_",
{"resolved": "sender"},
],
},
}
keys = [
{
"keytitle": "name",
"keyvalue": {
"resolved": "username",
},
},
{
"keytitle": "topic",
"keyvalue": {
"resolved": "location",
},
},
{
"keytitle": "room_alias_name",
"keyvalue": {
"resolved": "matrixdm",
},
},
{
"keytitle": "visibility",
"keyvalue": "private",
},
{
"keytitle": "preset",
"keyvalue": "private_chat",
},
{
"keytitle": "is_direct",
"keyvalue": True,
},
{
"keytitle": "invite",
"keyvalue": [
"@lyncoln:loxthelion.com",
#{"resolved": "matrixuser"},
"@rmass_bridge:loxthelion.com",
],
},
{
"keytitle": "power_level_content_override",
"keyvalue": {
"users": {
"@lyncoln:loxthelion.com": 100,
"@rmass_bridge:loxthelion.com": 100,
},
},
}
]
method = "POST"
path = [
"https://loxthelion.com/_matrix/client/v3/createRoom?user_id=",
#"@rmass_bridge:loxthelion.com",
{"resolved": "matrixuser"},
#":loxthelion.com",
]
headers = {
"Authorization": {
"os": "AS_TOKEN",
"prefix": "Bearer ",
},
"Content-Type": "application/json",
}
outputs = {
"room_id": "room_id",
}
saverow = {
"table": "user_profiles",
"columns": [
{"rmass_user_id": "INTEGER PRIMARY KEY"},
{"rmass_username": "TEXT NOT NULL UNIQUE"},
{"rmass_dm_room": "TEXT NOT NULL UNIQUE"},
{"rmass_avatar_hash": "TEXT"},
],
"rowitems": [
{"resolved": "sender"},
{"resolved": "username"},
{"resolved": "matrixdm"},
{"outputs": "useravatar_hash"},
],
"onconflict": {
"target": "rmass_user_id",
"update": [
"rmass_username",
"rmass_dm_room",
"rmass_avatar_hash",
],
"preservenull": True,
},
}
#readrow = {
# "table": "user_profiles",
# "columns": [
# {"rmass_user_id": "INTEGER PRIMARY KEY"},
# {"rmass_username": "TEXT NOT NULL UNIQUE"},
# {"rmass_dm_room": "TEXT NOT NULL UNIQUE"},
# {"rmass_avatar_hash": "TEXT"},
# ],
# "searchcolumn": "rmass_dm_room",
# "rowsearchvalue": [
# {"resolved": "matrixdm"},
# ],
# "columnnumber": 2,
#}
filters = [
{
"filterkey": "matrixdm",
"operator": "==",
"filtervalue": {"outputs": "db_dm_room"},
"print": "DM Room already created. Continuing...",
},
]