Added readrow, saverow and filters to ensure deduplication

This commit is contained in:
Lyncoln
2026-10-21 00:44:05 -04:00
parent 4da00df2e3
commit 2915a7fa75
5 changed files with 163 additions and 8 deletions
+26 -3
View File
@@ -6,14 +6,12 @@ kind = "action"
showstatus = True showstatus = True
#astoken = os.environ["AS_TOKEN"]
resolve = { resolve = {
"get": { "get": {
"sender": ["messageheaders", "userCard", "id"], "sender": ["messageheaders", "userCard", "id"],
"avatar": ["uploadimage"], "avatar": ["uploadimage"],
"username": ["messageheaders", "userCard", "username"], "username": ["messageheaders", "userCard", "username"],
#"username": ["pullmessages", 0, "userCard", "username"], "avatar_hash": ["useravatar_hash"],
}, },
"construct": { "construct": {
"matrixuser": [ "matrixuser": [
@@ -50,3 +48,28 @@ headers = {
"Content-Type": "application/json", "Content-Type": "application/json",
} }
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_avatar_hash",
"rowsearchvalue": [
{"resolved": "avatar_hash"},
{"resolved": "sender"},
],
"columnnumber": 3,
}
filters = [
{
"filterkey": "avatar_hash",
"operator": "==",
"filtervalue": {"outputs": "databasetarget"},
"print": "User avatar up to date. Continuing...",
},
]
@@ -33,6 +33,8 @@ keys = [
}, },
] ]
isrequest = True
method = "PUT" method = "PUT"
path = [ path = [
@@ -50,3 +52,26 @@ headers = {
"Content-Type": "application/json", "Content-Type": "application/json",
} }
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_username",
"rowsearchvalue": [
{"resolved": "username"},
],
"columnnumber": 1,
}
filters = [
{
"filterkey": "username",
"operator": "==",
"filtervalue": {"outputs": "databasetarget"},
"print": "Username up to date. Continuing...",
},
]
+45 -2
View File
@@ -10,7 +10,6 @@ resolve = {
"get": { "get": {
"sender": ["messageheaders", "userCard", "id"], "sender": ["messageheaders", "userCard", "id"],
"location": ["profile", "location"], "location": ["profile", "location"],
#"username": ["messageheaders", "username"],
"username": ["messageheaders", "userCard", "username"], "username": ["messageheaders", "userCard", "username"],
}, },
"construct": { "construct": {
@@ -59,7 +58,10 @@ keys = [
}, },
{ {
"keytitle": "invite", "keytitle": "invite",
"keyvalue": ["@lyncoln:loxthelion.com"], "keyvalue": [
"@lyncoln:loxthelion.com",
#"@rmass_bridge:loxthelion.com",
],
}, },
#{ #{
#"keytitle": "power_level_content_override", #"keytitle": "power_level_content_override",
@@ -91,3 +93,44 @@ headers = {
outputs = { outputs = {
"room_id": "room_id", "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"},
],
}
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": "databasetarget"},
"print": "DM Room already created. Continuing...",
},
]
+41 -1
View File
@@ -1,4 +1,4 @@
#import os from . import synapsenotify
name = "Synapse Message Push" name = "Synapse Message Push"
@@ -34,6 +34,8 @@ resolve = {
}, },
} }
isrequest = True
keys = [ keys = [
{ {
"keytitle": "msgtype", "keytitle": "msgtype",
@@ -85,4 +87,42 @@ headers = {
"Content-Type": "application/json", "Content-Type": "application/json",
} }
outputs = {
"event_id": "event_id"
}
saverow = {
"table": "message_mapping",
"columns": [
{"rmass_message_id": "INTEGER PRIMARY KEY"},
{"matrix_event_id": "TEXT NOT NULL UNIQUE"},
],
"rowitems": [
{"resolved": "message_id"},
{"outputs": "event_id"},
],
}
readrow = {
"table": "message_mapping",
"columns": [
{"rmass_message_id": "INTEGER PRIMARY KEY"},
{"matrix_event_id": "TEXT NOT NULL UNIQUE"},
],
"searchcolumn": "rmass_message_id",
"rowsearchvalue": [
{"resolved": "message_id"},
],
"columnnumber": 0,
}
filters = [
{
"filterkey": "message_id",
"operator": "==",
"filtervalue": {"outputs": "databasetarget"},
"print": "Message already forwarded. Continuing...",
},
]
+26 -2
View File
@@ -9,9 +9,7 @@ showstatus = True
resolve = { resolve = {
"get": { "get": {
"sender": ["messageheaders", "userCard", "id"], "sender": ["messageheaders", "userCard", "id"],
#"sender": ["pullmessages", 0, "userCard", "id"],
"username": ["messageheaders", "userCard", "username"], "username": ["messageheaders", "userCard", "username"],
#"username": ["pullmessages", 0, "userCard", "username"],
} }
} }
keys = [ keys = [
@@ -32,6 +30,8 @@ keys = [
}, },
] ]
isrequest = True
method = "POST" method = "POST"
path = "https://loxthelion.com/_matrix/client/v3/register" path = "https://loxthelion.com/_matrix/client/v3/register"
@@ -47,3 +47,27 @@ headers = {
outputs = { outputs = {
"user_id": "user_id", "user_id": "user_id",
} }
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_user_id",
"rowsearchvalue": [
{"resolved": "sender"},
],
"columnnumber": 0,
}
filters = [
{
"filterkey": "sender",
"operator": "==",
"filtervalue": {"outputs": "databasetarget"},
"print": "User already registered. Continuing...",
},
]