Files
delete-your-element/scripts/remove-old-bridged-users.js
2026-01-07 15:38:09 +13:00

41 lines
1.1 KiB
JavaScript

// @ts-check
const HeatSync = require("heatsync")
const sync = new HeatSync({watchFS: false})
const sqlite = require("better-sqlite3")
const db = new sqlite("db/ooye.db")
const passthrough = require("../src/passthrough")
Object.assign(passthrough, {db, sync})
const api = require("../src/matrix/api")
const utils = require("../src/matrix/utils")
const mreq = require("../src/matrix/mreq")
const rooms = db.prepare("select room_id from channel_room").pluck().all()
;(async () => {
// Step 5: Kick users starting with @_discord_
await mreq.withAccessToken("baby", async () => {
for (const roomID of rooms) {
try {
const members = await api.getJoinedMembers(roomID)
for (const mxid of Object.keys(members.joined)) {
if (mxid.startsWith("@_discord_") && !mxid.startsWith("@_discord_bot")) {
await api.leaveRoom(roomID, mxid)
}
}
await utils.setUserPower(roomID, "@_discord_bot:cadence.moe", 0, api)
await api.leaveRoom(roomID)
} catch (e) {
if (e.message.includes("Appservice not in room")) {
// ok
} else {
throw e
}
}
}
})
})()