From 8a5b46565f752e9d676eb2c498e37fd5459000dd Mon Sep 17 00:00:00 2001 From: jenz Date: Wed, 25 Feb 2026 15:39:01 +0100 Subject: [PATCH] claude AI generated code to auto insert users on the unloze stoat server who joined the stoat instance but did not join the unloze server --- stoat_insert_members_to_server/sync.js | 25 +++++++++++++++++++ stoat_insert_members_to_server/sync.sh | 3 +++ .../systemctl/stoat-member-sync.service | 8 ++++++ .../systemctl/stoat-member-sync.timer | 8 ++++++ 4 files changed, 44 insertions(+) create mode 100755 stoat_insert_members_to_server/sync.js create mode 100755 stoat_insert_members_to_server/sync.sh create mode 100644 stoat_insert_members_to_server/systemctl/stoat-member-sync.service create mode 100644 stoat_insert_members_to_server/systemctl/stoat-member-sync.timer diff --git a/stoat_insert_members_to_server/sync.js b/stoat_insert_members_to_server/sync.js new file mode 100755 index 0000000..e03712a --- /dev/null +++ b/stoat_insert_members_to_server/sync.js @@ -0,0 +1,25 @@ +var SERVER_ID = ''; + +var memberUserIds = db.server_members.distinct("_id.user", { "_id.server": SERVER_ID }); +var bannedUserIds = db.server_bans.distinct("_id.user", { "_id.server": SERVER_ID }); + +var excludedIds = memberUserIds.concat(bannedUserIds); + +var users = db.users.find({ + _id: { $nin: excludedIds } +}, { _id: 1 }).toArray(); + +var inserted = 0; +users.forEach(user => { + db.server_members.insertOne({ + _id: { + server: SERVER_ID, + user: user._id + }, + joined_at: Long(Date.now()), + roles: [] + }); + inserted++; +}); + +print("Done. Inserted " + inserted + " users into server."); diff --git a/stoat_insert_members_to_server/sync.sh b/stoat_insert_members_to_server/sync.sh new file mode 100755 index 0000000..75e6c19 --- /dev/null +++ b/stoat_insert_members_to_server/sync.sh @@ -0,0 +1,3 @@ +#!/bin/bash +cd /home/nonroot/stoat-server +docker compose exec -T database mongosh revolt < /home/nonroot/stoat_insert_members_to_server/sync.js diff --git a/stoat_insert_members_to_server/systemctl/stoat-member-sync.service b/stoat_insert_members_to_server/systemctl/stoat-member-sync.service new file mode 100644 index 0000000..4a3f701 --- /dev/null +++ b/stoat_insert_members_to_server/systemctl/stoat-member-sync.service @@ -0,0 +1,8 @@ +[Unit] +Description=Stoat Member Sync +After=docker.service + +[Service] +Type=oneshot +User=nonroot +ExecStart=/home/nonroot/stoat_insert_members_to_server/sync.sh diff --git a/stoat_insert_members_to_server/systemctl/stoat-member-sync.timer b/stoat_insert_members_to_server/systemctl/stoat-member-sync.timer new file mode 100644 index 0000000..b172813 --- /dev/null +++ b/stoat_insert_members_to_server/systemctl/stoat-member-sync.timer @@ -0,0 +1,8 @@ +[Unit] +Description=Run Stoat Member Sync periodically + +[Timer] +OnCalendar=0/3:00:00 + +[Install] +WantedBy=timers.target