Initial commit of karuta-starboard bot

This commit is contained in:
UltraLionFr
2025-07-19 05:01:14 +02:00
commit 85800e3c8f
13 changed files with 371 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
const fs = require('fs');
const YAML = require('yaml');
const configPath = './config.yml';
function readConfig() {
try {
const file = fs.readFileSync(configPath, 'utf8');
return YAML.parse(file) || {};
} catch (error) {
console.error('Error reading config.yml file:', error);
return {};
}
}
function writeConfig(config) {
try {
const yamlString = YAML.stringify(config);
fs.writeFileSync(configPath, yamlString, 'utf8');
} catch (error) {
console.error('Error writing to config.yml:', error);
}
}
function getMessages() {
const config = readConfig();
return config.messages || {};
}
function getGuildConfig(guildId) {
const config = readConfig();
if (!config.guilds) config.guilds = {};
if (!config.guilds[guildId]) config.guilds[guildId] = {};
return config.guilds[guildId];
}
function setGuildConfig(guildId, newData) {
const config = readConfig();
if (!config.guilds) config.guilds = {};
config.guilds[guildId] = {
...config.guilds[guildId],
...newData
};
writeConfig(config);
}
function getAppearance() {
const config = readConfig();
return config.appearance || {};
}
function getActivity() {
const config = readConfig();
return config.activity || {};
}
module.exports = {
readConfig,
writeConfig,
getMessages,
getGuildConfig,
setGuildConfig,
getAppearance,
getActivity
};
+36
View File
@@ -0,0 +1,36 @@
const fs = require('fs');
const dbPath = './db.json';
function readDB() {
try {
const data = fs.readFileSync(dbPath, 'utf8');
return JSON.parse(data) || {};
} catch {
return {};
}
}
function writeDB(data) {
fs.writeFileSync(dbPath, JSON.stringify(data, null, 2));
}
function getGuildData(guildId) {
const db = readDB();
if (!db[guildId]) db[guildId] = {};
return db[guildId];
}
function setGuildData(guildId, newData) {
const db = readDB();
db[guildId] = {
...db[guildId],
...newData
};
writeDB(db);
}
module.exports = {
getGuildData,
setGuildData
};