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, # }, #}