From 93b277e5b8a9e0314d2b0f3cc5508ac9065df782 Mon Sep 17 00:00:00 2001 From: stringsplit <77242831+nbitzz@users.noreply.github.com> Date: Fri, 24 May 2024 18:46:18 +0000 Subject: [PATCH 1/2] automatically generate directories with new DbFile system --- src/server/index.ts | 8 -------- src/server/lib/dbfile.ts | 8 +++++++- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/server/index.ts b/src/server/index.ts index 158b338..334113b 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -57,14 +57,6 @@ if (config.forceSSL) { }) } -// funcs - -// init data - -const __dirname = dirname(fileURLToPath(import.meta.url)) -if (!fs.existsSync(__dirname + "/../.data/")) - fs.mkdirSync(__dirname + "/../.data/") - // discord let files = new Files(config) diff --git a/src/server/lib/dbfile.ts b/src/server/lib/dbfile.ts index e9cedf3..c1a8a69 100644 --- a/src/server/lib/dbfile.ts +++ b/src/server/lib/dbfile.ts @@ -1,4 +1,5 @@ -import { readFile, writeFile, rename, readdir } from "fs/promises" +import { readFile, writeFile, readdir, mkdir } from "fs/promises" +import { existsSync } from "fs" import path from "node:path" const DATADIR = `./.data` @@ -92,6 +93,11 @@ export default class DbFile { } private async findAvailable() { + // would it be worth it to remove existsSync here? + // mkdir seems to already do it itself when recursive is true + if (!existsSync(DATADIR)) + await mkdir(DATADIR, { recursive: true }) + return (await readdir(DATADIR)) .filter(e => e.match(new RegExp(`^${this.name}(?:-b)?.json$`))) .map(e => path.join(DATADIR, e)) From 06856ae422ac96cec4907694bec4eecd2ad69383 Mon Sep 17 00:00:00 2001 From: stringsplit <77242831+nbitzz@users.noreply.github.com> Date: Fri, 24 May 2024 15:47:22 -0700 Subject: [PATCH 2/2] huhh --- src/server/lib/middleware.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/server/lib/middleware.ts b/src/server/lib/middleware.ts index f02ce9f..ece4bb6 100644 --- a/src/server/lib/middleware.ts +++ b/src/server/lib/middleware.ts @@ -17,6 +17,14 @@ export const getAccount: RequestHandler = function (ctx, next) { return next() } +export function resolveTarget(actor: Accounts.Account, targetString: string) { + return targetString == "me" + ? actor + : targetString.startsWith("@") + ? Accounts.getFromUsername(targetString.slice(1)) + : Accounts.getFromId(targetString) +} + /** * @description use :user param to get a target for this route */ @@ -29,12 +37,7 @@ export const getTarget: RequestHandler = async (ctx, next) => { let actor = ctx.get("account") - let target = - ctx.req.param("user") == "me" - ? actor - : ctx.req.param("user").startsWith("@") - ? Accounts.getFromUsername(ctx.req.param("user").slice(1)) - : Accounts.getFromId(ctx.req.param("user")) + let target = resolveTarget(actor, ctx.req.param("user")) if (!target) return ServeError(ctx, 404, "account does not exist")