From e85ce37f4d011e3c8253f58b4ffcafb8acd634a8 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Mon, 6 Jul 2026 10:33:07 +0000 Subject: [PATCH 1/2] chore: add env overrides for storage and database paths --- src/myDatabase.js | 6 +++++- src/storage.js | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/myDatabase.js b/src/myDatabase.js index 0fc1071..0dde2af 100644 --- a/src/myDatabase.js +++ b/src/myDatabase.js @@ -1,9 +1,13 @@ const Database = require("better-sqlite3"); +const path = require("path"); + +const DATABASE_DIR = process.env.DATABASE_DIR || "/database"; +const DATABASE_FILE = process.env.DATABASE_FILE || path.join(DATABASE_DIR, "users.db"); class MyDatabase { dbObj; constructor() { - this.dbObj = new Database("/database/users.db"); + this.dbObj = new Database(DATABASE_FILE); this.dbObj.exec(` CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, diff --git a/src/storage.js b/src/storage.js index 751ea79..affea0f 100644 --- a/src/storage.js +++ b/src/storage.js @@ -1,8 +1,12 @@ const fs = require('fs'); const fsp = require('fs/promises'); +const path = require('path'); const readline = require('readline'); const readLine = require("node:readline"); const myDb = require('./myDatabase'); + +const STORAGE_DIR = process.env.STORAGE_DIR || "/storage"; + class Storage { userId; dbObj; @@ -13,7 +17,7 @@ class Storage { } get getDir() { - return "/storage/" + Math.floor(this.userId / 100); + return path.join(STORAGE_DIR, String(Math.floor(this.userId / 100))); } get fileName() { return this.getDir + "/" + this.userId + ".jsonl"; From d17e23ea3e6ec9daf1456df8c9b5d5448f5767c6 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Mon, 6 Jul 2026 13:10:03 +0000 Subject: [PATCH 2/2] fix: limit queue cleanup to expired users --- src/appv2.js | 4 ++-- src/storage.js | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/appv2.js b/src/appv2.js index bfbcbe7..e8c13e2 100644 --- a/src/appv2.js +++ b/src/appv2.js @@ -236,8 +236,8 @@ class Appv2 { const afterFetchFromDb = Date.now(); console.log("Fetch from db: "+(Date.now() - startTimeToDebug) / 1000 + " seconds"); - for (const user of users) { - const storage = new storageObj(user.id); + for (const userId of userToDel) { + const storage = new storageObj(userId); await storage.removeQueue(); count++; } diff --git a/src/storage.js b/src/storage.js index affea0f..8f3e137 100644 --- a/src/storage.js +++ b/src/storage.js @@ -55,7 +55,9 @@ class Storage { try { await fsp.unlink(this.fileName); } catch(err) { - console.log(err); + if (err?.code !== 'ENOENT') { + console.log(err); + } } this.dbObj.deleteUser(this.userId); }