Move everything to src folder... it had to happen
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "sim" (
|
||||
"discord_id" TEXT NOT NULL,
|
||||
"sim_name" TEXT NOT NULL UNIQUE,
|
||||
"localpart" TEXT NOT NULL,
|
||||
"mxid" TEXT NOT NULL,
|
||||
PRIMARY KEY("discord_id")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "webhook" (
|
||||
"channel_id" TEXT NOT NULL,
|
||||
"webhook_id" TEXT NOT NULL,
|
||||
"webhook_token" TEXT NOT NULL,
|
||||
PRIMARY KEY("channel_id")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "sim_member" (
|
||||
"mxid" TEXT NOT NULL,
|
||||
"room_id" TEXT NOT NULL,
|
||||
"profile_event_content_hash" BLOB,
|
||||
PRIMARY KEY("room_id","mxid")
|
||||
) WITHOUT ROWID;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "member_cache" (
|
||||
"room_id" TEXT NOT NULL,
|
||||
"mxid" TEXT NOT NULL,
|
||||
"displayname" TEXT,
|
||||
"avatar_url" TEXT,
|
||||
PRIMARY KEY("room_id","mxid")
|
||||
) WITHOUT ROWID;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "file" (
|
||||
"discord_url" TEXT NOT NULL,
|
||||
"mxc_url" TEXT NOT NULL,
|
||||
PRIMARY KEY("discord_url")
|
||||
) WITHOUT ROWID;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "guild_space" (
|
||||
"guild_id" TEXT NOT NULL,
|
||||
"space_id" TEXT NOT NULL,
|
||||
PRIMARY KEY("guild_id")
|
||||
) WITHOUT ROWID;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "channel_room" (
|
||||
"channel_id" TEXT NOT NULL,
|
||||
"room_id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"nick" TEXT,
|
||||
"thread_parent" TEXT,
|
||||
"custom_avatar" TEXT,
|
||||
PRIMARY KEY("channel_id","room_id")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "message_channel" (
|
||||
"message_id" TEXT NOT NULL,
|
||||
"channel_id" TEXT NOT NULL,
|
||||
PRIMARY KEY("message_id")
|
||||
) WITHOUT ROWID;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "event_message" (
|
||||
"event_id" TEXT NOT NULL,
|
||||
"message_id" TEXT NOT NULL,
|
||||
"event_type" TEXT,
|
||||
"event_subtype" TEXT,
|
||||
"part" INTEGER NOT NULL,
|
||||
"source" INTEGER NOT NULL,
|
||||
PRIMARY KEY("message_id","event_id")
|
||||
) WITHOUT ROWID;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "lottie" (
|
||||
"id" TEXT NOT NULL,
|
||||
"mxc" TEXT NOT NULL,
|
||||
PRIMARY KEY("id")
|
||||
) WITHOUT ROWID;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "emoji" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"animated" INTEGER NOT NULL,
|
||||
"mxc_url" TEXT NOT NULL,
|
||||
PRIMARY KEY("id")
|
||||
) WITHOUT ROWID;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "reaction" (
|
||||
"hashed_event_id" INTEGER NOT NULL,
|
||||
"message_id" TEXT NOT NULL,
|
||||
"encoded_emoji" TEXT NOT NULL,
|
||||
PRIMARY KEY ("hashed_event_id")
|
||||
) WITHOUT ROWID;
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,20 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
-- Change hashed_profile_content column affinity to INTEGER
|
||||
|
||||
CREATE TABLE "new_sim_member" (
|
||||
"mxid" TEXT NOT NULL,
|
||||
"room_id" TEXT NOT NULL,
|
||||
"hashed_profile_content" INTEGER,
|
||||
PRIMARY KEY("room_id","mxid")
|
||||
) WITHOUT ROWID;
|
||||
|
||||
INSERT INTO new_sim_member SELECT * FROM sim_member;
|
||||
|
||||
DROP TABLE sim_member;
|
||||
|
||||
ALTER TABLE new_sim_member RENAME TO sim_member;
|
||||
|
||||
COMMIT;
|
||||
|
||||
VACUUM;
|
||||
@@ -0,0 +1,13 @@
|
||||
module.exports = async function(db) {
|
||||
const hasher = await require("xxhash-wasm")()
|
||||
const contents = db.prepare("SELECT distinct hashed_profile_content FROM sim_member WHERE hashed_profile_content IS NOT NULL").pluck().all()
|
||||
const stmt = db.prepare("UPDATE sim_member SET hashed_profile_content = ? WHERE hashed_profile_content = ?")
|
||||
db.transaction(() => {
|
||||
for (let s of contents) {
|
||||
let b = Buffer.isBuffer(s) ? Uint8Array.from(s) : Uint8Array.from(Buffer.from(s))
|
||||
const unsignedHash = hasher.h64Raw(b)
|
||||
const signedHash = unsignedHash - 0x8000000000000000n // shifting down to signed 64-bit range
|
||||
stmt.run(signedHash, s)
|
||||
}
|
||||
})()
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
-- Rename mxc to mxc_url for consistency
|
||||
|
||||
ALTER TABLE lottie RENAME COLUMN mxc TO mxc_url;
|
||||
|
||||
-- Rename id to sticker_id so joins make sense in the future
|
||||
|
||||
ALTER TABLE lottie RENAME COLUMN id TO sticker_id;
|
||||
|
||||
-- Rename discord_id to user_id so joins make sense in the future
|
||||
|
||||
ALTER TABLE sim RENAME COLUMN discord_id TO user_id;
|
||||
|
||||
-- Rename id to emoji_id so joins make sense in the future
|
||||
|
||||
ALTER TABLE emoji RENAME COLUMN id TO emoji_id;
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,10 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
CREATE TABLE auto_emoji (
|
||||
name TEXT NOT NULL,
|
||||
emoji_id TEXT NOT NULL,
|
||||
guild_id TEXT NOT NULL,
|
||||
PRIMARY KEY (name)
|
||||
) WITHOUT ROWID;
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,5 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
DELETE FROM member_cache;
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,5 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
ALTER TABLE guild_space ADD COLUMN privacy_level INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,24 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
-- Add column reaction_part to event_message, copying the existing value from part
|
||||
|
||||
CREATE TABLE "new_event_message" (
|
||||
"event_id" TEXT NOT NULL,
|
||||
"event_type" TEXT,
|
||||
"event_subtype" TEXT,
|
||||
"message_id" TEXT NOT NULL,
|
||||
"part" INTEGER NOT NULL,
|
||||
"reaction_part" INTEGER NOT NULL,
|
||||
"source" INTEGER NOT NULL,
|
||||
PRIMARY KEY("message_id","event_id")
|
||||
) WITHOUT ROWID;
|
||||
|
||||
INSERT INTO new_event_message SELECT event_id, event_type, event_subtype, message_id, part, part, source FROM event_message;
|
||||
|
||||
DROP TABLE event_message;
|
||||
|
||||
ALTER TABLE new_event_message RENAME TO event_message;
|
||||
|
||||
COMMIT;
|
||||
|
||||
VACUUM;
|
||||
@@ -0,0 +1,5 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
ALTER TABLE channel_room ADD COLUMN last_bridged_pin_timestamp INTEGER;
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,7 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
ALTER TABLE channel_room ADD COLUMN speedbump_id TEXT;
|
||||
ALTER TABLE channel_room ADD COLUMN speedbump_webhook_id TEXT;
|
||||
ALTER TABLE channel_room ADD COLUMN speedbump_checked INTEGER;
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,6 @@
|
||||
CREATE TABLE IF NOT EXISTS sim_proxy (
|
||||
user_id TEXT NOT NULL,
|
||||
proxy_owner_id TEXT NOT NULL,
|
||||
displayname TEXT NOT NULL,
|
||||
PRIMARY KEY(user_id)
|
||||
) WITHOUT ROWID;
|
||||
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
a. If the bridge bot sim already has the correct ID:
|
||||
- No rows updated.
|
||||
|
||||
b. If the bridge bot sim has the wrong ID but there's no duplicate:
|
||||
- One row updated.
|
||||
|
||||
c. If the bridge bot sim has the wrong ID and there's a duplicate:
|
||||
- One row updated (replaces an existing row).
|
||||
*/
|
||||
|
||||
module.exports = async function(db) {
|
||||
const config = require("../../config")
|
||||
const id = Buffer.from(config.discordToken.split(".")[0], "base64").toString()
|
||||
db.prepare("UPDATE OR REPLACE sim SET user_id = ? WHERE user_id = '0'").run(id)
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
-- the power we want them to have
|
||||
CREATE TABLE IF NOT EXISTS member_power (
|
||||
mxid TEXT NOT NULL,
|
||||
room_id TEXT NOT NULL,
|
||||
power_level INTEGER NOT NULL,
|
||||
PRIMARY KEY(mxid, room_id)
|
||||
) WITHOUT ROWID;
|
||||
|
||||
-- the power they have
|
||||
ALTER TABLE member_cache ADD COLUMN power_level INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user