import fs from 'fs'; const DB_PATH = './db.json'; // Valeurs par défaut const settingsDefaultValues = { quoiAnswerPercentage: 100, quoicoubehAnswerPercentage: 100, feurAnswerPercentage: 100, mentionAnswerPercentage: 100, forcedAnswerRoleId: null, ignoredRoleId: null, }; // Structure de base de la DB en mémoire let dbData = { ignoredChannels: [], // Liste d'objets { channelId, guildId } configs: {} // Objet : guildId -> { settings } }; // --- Fonctions internes (Sauvegarde/Chargement) --- function loadDb() { if (!fs.existsSync(DB_PATH)) { saveDb(); // Crée le fichier s'il n'existe pas return; } try { const raw = fs.readFileSync(DB_PATH, 'utf-8'); dbData = JSON.parse(raw); // Sécurité : s'assurer que les structures existent if (!dbData.ignoredChannels) dbData.ignoredChannels = []; if (!dbData.configs) dbData.configs = {}; } catch (e) { console.error("Erreur lecture DB, réinitialisation :", e); saveDb(); } } function saveDb() { fs.writeFileSync(DB_PATH, JSON.stringify(dbData, null, 2), 'utf-8'); } // Initialisation au démarrage loadDb(); // --- Fonctions exportées (Même signature que l'ancien db.js) --- export function addChannelToIgnoreList(channelId, guildId) { // Vérifier si déjà présent const exists = dbData.ignoredChannels.some(c => c.channelId === channelId); if (!exists) { dbData.ignoredChannels.push({ channelId, guildId }); saveDb(); } } export function getIgnoredChannels(guildId) { return dbData.ignoredChannels.filter(c => c.guildId === guildId); } export function removeChannelFromIgnoreList(channelId) { const initialLength = dbData.ignoredChannels.length; dbData.ignoredChannels = dbData.ignoredChannels.filter(c => c.channelId !== channelId); if (dbData.ignoredChannels.length !== initialLength) { saveDb(); } } export function setSetting(guildId, setting, value) { // Initialiser la config de la guilde si inexistante if (!dbData.configs[guildId]) { dbData.configs[guildId] = { ...settingsDefaultValues }; } // Mettre à jour la valeur dbData.configs[guildId][setting] = value; saveDb(); } export function getSetting(guildId, setting) { const config = dbData.configs[guildId]; if (!config) { return settingsDefaultValues[setting]; } const val = config[setting]; return val === undefined ? settingsDefaultValues[setting] : val; }