Made avatar retrieval optional by introducing the allow action gate.

This commit is contained in:
Lyncoln
2026-10-26 09:44:54 -04:00
parent 92b6fb3aa0
commit 6cd35d7d64
4 changed files with 48 additions and 36 deletions
@@ -1,9 +1,13 @@
import os
name = "Get User Avatar" name = "Get User Avatar"
kind = "action" kind = "action"
alias = "getavatar" alias = "getavatar"
allowaction = bool(os.environ.get("UPDATE_AVATARS", True))
showstatus = True showstatus = True
isrequest = True isrequest = True
@@ -1,9 +1,13 @@
import os
name = "Upload Avatar to Synapse" name = "Upload Avatar to Synapse"
kind = "action" kind = "action"
alias = "uploadavatar" alias = "uploadavatar"
allowaction = os.environ.get("UPDATE_AVATARS", True)
showstatus = True showstatus = True
resolve = { resolve = {
+12 -10
View File
@@ -6,6 +6,8 @@ kind = "action"
showstatus = True showstatus = True
allowaction = os.environ.get("UPDATE_AVATARS", True)
resolve = { resolve = {
"get": { "get": {
"sender": ["messageheaders", "userCard", "id"], "sender": ["messageheaders", "userCard", "id"],
@@ -69,18 +71,18 @@ headers = {
#} #}
filters = [ filters = [
# {
# "filterkey": "avatar_hash",
# "operator": "==",
# "filtervalue": {"outputs": "db_avatar_hash"},
# "print": f"User avatar up to date. Skipping {name}...",
# },
{ {
"filterkey": "uploadimage", "filterkey": "avatar_hash",
"operator": "is", "operator": "==",
"filtervalue": None, "filtervalue": {"outputs": "db_avatar_hash"},
"print": f"No avatar for upload. Skipping {name}...", "print": f"User avatar up to date. Skipping {name}...",
}, },
# {
# "filterkey": "uploadimage",
# "operator": "is",
# "filtervalue": None,
# "print": f"No avatar for upload. Skipping {name}...",
# },
] ]
#saverow = { #saverow = {
+28 -26
View File
@@ -6,6 +6,8 @@ kind = "action"
showstatus = True showstatus = True
allowaction = os.environ.get("UPDATE_AVATARS", True)
resolve = { resolve = {
"get": { "get": {
"sender": ["messageheaders", "userCard", "id"], "sender": ["messageheaders", "userCard", "id"],
@@ -43,8 +45,8 @@ path = [
{"resolved": "room_id"}, {"resolved": "room_id"},
"/state/m.room.avatar", "/state/m.room.avatar",
#{"resolved": "matrixuser"}, #{"resolved": "matrixuser"},
#"/avatar_url?user_id=", "?user_id=",
#{"resolved": "matrixuser"}, {"resolved": "matrixuser"},
] ]
headers = { headers = {
@@ -66,27 +68,27 @@ filters = [
] ]
saverow = { #saverow = {
"table": "user_profiles", # "table": "user_profiles",
"columns": [ # "columns": [
{"rmass_user_id": "INTEGER PRIMARY KEY"}, # {"rmass_user_id": "INTEGER PRIMARY KEY"},
{"rmass_username": "TEXT NOT NULL UNIQUE"}, # {"rmass_username": "TEXT NOT NULL UNIQUE"},
{"rmass_dm_room": "TEXT NOT NULL UNIQUE"}, # {"rmass_dm_room": "TEXT NOT NULL UNIQUE"},
{"rmass_avatar_hash": "TEXT"}, # {"rmass_avatar_hash": "TEXT"},
], # ],
"rowitems": [ # "rowitems": [
{"resolved": "sender"}, # {"resolved": "sender"},
{"resolved": "username"}, # {"resolved": "username"},
{"resolved": "matrixdm"}, # {"resolved": "matrixdm"},
{"outputs": "useravatar_hash"}, # {"outputs": "useravatar_hash"},
], # ],
"onconflict": { # "onconflict": {
"target": "rmass_user_id", # "target": "rmass_user_id",
"update": [ # "update": [
"rmass_username", # "rmass_username",
"rmass_dm_room", # "rmass_dm_room",
"rmass_avatar_hash", # "rmass_avatar_hash",
], # ],
"preservenull": True, # "preservenull": True,
}, # },
} #}