code organisation & refactor

This commit is contained in:
2025-11-27 20:23:00 +01:00
parent 03636fee99
commit 2b29beeeb5
33 changed files with 2099 additions and 1947 deletions

48
src/shared/database.js Normal file
View File

@@ -0,0 +1,48 @@
const sqlite3 = require('sqlite3').verbose();
const path = require('path');
const DB_PATH = path.join(__dirname, '..', 'metadata', 'anilist_anime.db');
let db = null;
function initDatabase() {
db = new sqlite3.Database(DB_PATH, sqlite3.OPEN_READONLY, (err) => {
if (err) {
console.error("Database Error:", err.message);
} else {
console.log("Connected to local AniList database.");
}
});
return db;
}
function getDatabase() {
if (!db) {
throw new Error("Database not initialized. Call initDatabase() first.");
}
return db;
}
function queryOne(sql, params = []) {
return new Promise((resolve, reject) => {
getDatabase().get(sql, params, (err, row) => {
if (err) reject(err);
else resolve(row);
});
});
}
function queryAll(sql, params = []) {
return new Promise((resolve, reject) => {
getDatabase().all(sql, params, (err, rows) => {
if (err) reject(err);
else resolve(rows || []);
});
});
}
module.exports = {
initDatabase,
getDatabase,
queryOne,
queryAll
};