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
This commit is contained in:
parent
fcf3490693
commit
8a5b46565f
25
stoat_insert_members_to_server/sync.js
Executable file
25
stoat_insert_members_to_server/sync.js
Executable file
@ -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.");
|
||||||
3
stoat_insert_members_to_server/sync.sh
Executable file
3
stoat_insert_members_to_server/sync.sh
Executable file
@ -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
|
||||||
@ -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
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Run Stoat Member Sync periodically
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnCalendar=0/3:00:00
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
||||||
Loading…
Reference in New Issue
Block a user