forked from cadence/out-of-your-element
Why did I make it this way??? #13
1 changed files with 36 additions and 0 deletions
36
scripts/remove-uncached-bridged-users.js
Normal file
36
scripts/remove-uncached-bridged-users.js
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
// @ts-check
|
||||
|
||||
const HeatSync = require("heatsync")
|
||||
const sync = new HeatSync({watchFS: false})
|
||||
|
||||
const sqlite = require("better-sqlite3")
|
||||
const db = new sqlite("ooye.db", {fileMustExist: true})
|
||||
|
||||
const passthrough = require("../src/passthrough")
|
||||
Object.assign(passthrough, {db, sync})
|
||||
|
||||
const api = require("../src/matrix/api")
|
||||
const utils = require("../src/matrix/utils")
|
||||
const {reg} = require("../src/matrix/read-registration")
|
||||
|
||||
const rooms = db.prepare("select room_id, name, nick from channel_room").all()
|
||||
|
||||
;(async () => {
|
||||
// Search for members starting with @_ooye_ and kick them if they are not in sim_member cache
|
||||
for (const room of rooms) {
|
||||
try {
|
||||
const members = await api.getJoinedMembers(room.room_id)
|
||||
for (const mxid of Object.keys(members.joined)) {
|
||||
if (!mxid.startsWith("@" + reg.sender_localpart) && utils.eventSenderIsFromDiscord(mxid) && !db.prepare("select mxid from sim_member where mxid = ? and room_id = ?").get(mxid, room.room_id)) {
|
||||
await api.leaveRoom(room.room_id, mxid)
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
if (e.message.includes("Appservice not in room")) {
|
||||
// ok
|
||||
} else {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
})()
|
||||
Loading…
Add table
Add a link
Reference in a new issue