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

103 lines
2.1 KiB
Python

import os
name = "Synapse Assign DM Room Avatar"
alias = "synapseassigndmavatar"
depends = [
"getrmassuseravatar",
"rmassavatartosynapse",
#"synapsegetroomid",
#"synapsecreatedmroom",
]
kind = "action"
showstatus = True
allowaction = os.environ.get("UPDATE_AVATARS", True)
resolve = {
"get": {
"sender": ["messageheaders", "userCard", "id"],
"avatar": ["uploadimage"],
"room_id": ["room_id"],
"username": ["messageheaders", "userCard", "username"],
"avatar_hash": ["useravatar_hash"],
},
"construct": {
"matrixuser": [
"@rmass_",
{"resolved": "sender"},
":loxthelion.com",
],
"matrixdm": [
"rmass_dm_",
{"resolved": "sender"},
],
},
}
keys = [
{
"keytitle": "url",
"keyvalue": {
"resolved": "avatar",
},
},
]
method = "PUT"
path = [
"https://loxthelion.com//_matrix/client/v3/rooms/",
{"resolved": "room_id"},
"/state/m.room.avatar",
#{"resolved": "matrixuser"},
"?user_id=",
{"resolved": "matrixuser"},
]
headers = {
"Authorization": {
"os": "AS_TOKEN",
"prefix": "Bearer ",
},
"Content-Type": "application/json",
}
filters = [
{
"filterkey": "avatar_hash",
"operator": "==",
"filtervalue": {"outputs": "db_avatar_hash"},
"print": f"DM avatar up to date. Skipping {name}...",
},
]
#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,
# },
#}