Files
fluff/bloom.js
2026-01-08 08:31:00 +01:00

31 lines
2.0 KiB
JavaScript

const crypto = require("node:crypto");
const fs = require("node:fs");
const sqlite = require("better-sqlite3");
const uuid = require("uuid");
const database = sqlite("./database.db");
database.prepare("DROP TABLE IF EXISTS fluff_authorised_services;").run();
database.prepare("DROP TABLE IF EXISTS fluff_authentication_base;").run();
database.prepare("DROP TABLE IF EXISTS fluff_services;").run();
database.prepare("DROP TABLE IF EXISTS fluff_logins;").run();
database.prepare("CREATE TABLE fluff_authorised_services(id TEXT PRIMARY KEY, serviceId TEXT, userId TEXT, authorisedAt INTEGER);").run();
database.prepare("CREATE TABLE fluff_authentication_base(id TEXT PRIMARY KEY, identifier TEXT UNIQUE, passhash TEXT, quote TEXT, admin INTEGER)").run();
database.prepare("CREATE TABLE fluff_services(id TEXT PRIMARY KEY, displayName TEXT, shortDescription, tosLink TEXT, ppLink TEXT, endpointLink TEXT, ownerId TEXT, approved INT);").run();
database.prepare("CREATE TABLE fluff_logins(id TEXT PRIMARY KEY, timestamp INTEGER, ip TEXT)").run();
const deslokittyuuid = uuid.v7();
const chatuuid = uuid.v7();
const authid = uuid.v7();
database.prepare("INSERT INTO fluff_authentication_base(id, identifier, passhash, quote, admin) VALUES (?, ?, ?, ?, ?)").run(deslokittyuuid, "deslokitty", "$2b$12$GAfuSvAwwwmzRP3HOaZiIeuz0IQFTqDZH1wdD9xGIJ5FOkqim9QRS", "meow meow >w<", 1);
database.prepare("INSERT INTO fluff_services(id, displayName, shortDescription, tosLink, ppLink, endpointLink, ownerId, approved) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run(chatuuid, "chat domestique", "chat domestique is a heavily opinionated chat platform for silly kibbies >w<", "https://chatdomestique.fr/legal/termsofuse", "https://chatdomestique.fr/legal/privacypolicy", "https://internal.chatdomestique.fr/endpoint/desloratadyna", deslokittyuuid, 1);
database.prepare("INSERT INTO fluff_authorised_services(id, serviceId, userId, authorisedAt) VALUES (?, ?, ?, ?)").run(authid, chatuuid, deslokittyuuid, Date.now());
fs.writeFileSync("./hmacsecret", crypto.randomBytes(16).toString("base64url"));
database.close();