add migration process for stuff already bridged
This commit is contained in:
parent
2816ca9111
commit
5aef6baaab
2 changed files with 18 additions and 5 deletions
|
@ -38,11 +38,11 @@ test("edit2changes: bot response", async t => {
|
||||||
resolve({
|
resolve({
|
||||||
joined: {
|
joined: {
|
||||||
"@cadence:cadence.moe": {
|
"@cadence:cadence.moe": {
|
||||||
display_name: "cadence [they]",
|
displayname: "cadence [they]",
|
||||||
avatar_url: "whatever"
|
avatar_url: "whatever"
|
||||||
},
|
},
|
||||||
"@_ooye_botrac4r:cadence.moe": {
|
"@_ooye_botrac4r:cadence.moe": {
|
||||||
display_name: "botrac4r",
|
displayname: "botrac4r",
|
||||||
avatar_url: "whatever"
|
avatar_url: "whatever"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,7 @@ const sema = new Semaphore()
|
||||||
function onPacket(discord, event) {
|
function onPacket(discord, event) {
|
||||||
if (event.t === "GUILD_CREATE") {
|
if (event.t === "GUILD_CREATE") {
|
||||||
const guild = event.d
|
const guild = event.d
|
||||||
if (["1100319549670301727", "112760669178241024", "497159726455455754"].includes(guild.id)) return
|
if (!["112760669178241024"].includes(guild.id)) return
|
||||||
sema.request(() => migrateGuild(guild))
|
sema.request(() => migrateGuild(guild))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -108,8 +108,21 @@ async function migrateGuild(guild) {
|
||||||
})
|
})
|
||||||
|
|
||||||
// Step 4: Add old rooms to new database; they are now also the new rooms
|
// Step 4: Add old rooms to new database; they are now also the new rooms
|
||||||
db.prepare("REPLACE INTO channel_room (channel_id, room_id, name) VALUES (?, ?, ?)").run(channel.id, row.matrix_id, channel.name)
|
// Make sure it wasn't already set up for the new bridge and bridged somewhere else pre-migration...
|
||||||
console.log(`-- -- Added to database`)
|
const preMigrationRow = db.prepare("SELECT room_id, nick, custom_avatar FROM channel_room WHERE channel_id = ?").get(channel.id)
|
||||||
|
if (preMigrationRow) {
|
||||||
|
// Ok, so we're going to delete this row from the database and then add the new proper row.
|
||||||
|
// But we want to copy over any previous custom settings like nick and avatar.
|
||||||
|
// (By the way, thread_parent is always null here because thread rooms would never be migrated because they are not in the old bridge.)
|
||||||
|
db.transaction(() => {
|
||||||
|
db.prepare("DELETE FROM channel_room WHERE channel_id = ?").run(channel.id)
|
||||||
|
db.prepare("INSERT INTO channel_room (channel_id, room_id, name, nick, custom_avatar) VALUES (?, ?, ?, ?, ?)").run(channel.id, row.matrix_id, channel.name, preMigrationRow.nick, preMigrationRow.custom_avatar)
|
||||||
|
console.log(`-- -- Added to database (transferred properties from previous OOYE room)`)
|
||||||
|
})()
|
||||||
|
} else {
|
||||||
|
db.prepare("REPLACE INTO channel_room (channel_id, room_id, name) VALUES (?, ?, ?)").run(channel.id, row.matrix_id, channel.name)
|
||||||
|
console.log(`-- -- Added to database`)
|
||||||
|
}
|
||||||
|
|
||||||
// Step 5: Call syncRoom for each room
|
// Step 5: Call syncRoom for each room
|
||||||
await createRoom.syncRoom(row.discord_channel)
|
await createRoom.syncRoom(row.discord_channel)
|
||||||
|
|
Loading…
Reference in a new issue