Moved from Enmap/SQLite to MongoDB

This commit is contained in:
TheEssem 2019-10-28 15:21:06 -05:00
parent 7d1ca165b7
commit 606c1ea1dc
11 changed files with 214 additions and 112 deletions

View file

@ -1,4 +1,4 @@
const database = require("../utils/database.js");
const Guild = require("../utils/database.js");
const logger = require("../utils/logger.js");
const misc = require("../utils/misc.js");
const client = require("../utils/client.js");
@ -6,6 +6,10 @@ const client = require("../utils/client.js");
// run when the bot is added to a guild
module.exports = async (guild) => {
logger.log("info", `[GUILD JOIN] ${guild.name} (${guild.id}) added the bot. Owner: ${client.users.get(guild.ownerID).username}#${client.users.get(guild.ownerID).discriminator} (${guild.ownerID})`);
database.settings.set(guild.id, misc.defaults);
database.tags.set(guild.id, misc.tagDefaults);
const guildDB = new Guild({
id: guild.id,
tags: misc.tagDefaults,
prefix: "&"
});
await guildDB.save();
};

View file

@ -1,9 +1,6 @@
const database = require("../utils/database.js");
const logger = require("../utils/logger.js");
// run when the bot is removed from a guild
module.exports = async (guild) => {
logger.log(`[GUILD LEAVE] ${guild.name} (${guild.id}) removed the bot.`);
database.settings.delete(guild.id);
database.tags.delete(guild.id);
};

View file

@ -12,7 +12,7 @@ module.exports = async (message) => {
// prefix can be a mention or a set of special characters
const prefixMention = new RegExp(`^<@!?${client.user.id}> `);
const guildConf = database.settings.ensure(message.channel.guild.id, misc.defaults);
const guildConf = (await database.find({ id: message.channel.guild.id }).exec())[0];
const prefix = prefixMention.test(message.content) ? message.content.match(prefixMention)[0] : guildConf.prefix;
// ignore other stuff

View file

@ -7,10 +7,18 @@ const misc = require("../utils/misc.js");
// run when ready
module.exports = async () => {
// make sure settings/tags exist
client.guilds.forEach(guild => {
database.settings.ensure(guild.id, misc.defaults);
database.tags.ensure(guild.id, misc.tagDefaults);
});
for (const guild of client.guilds) {
const guildDB = (await database.find({ id: guild.id }).exec())[0];
if (!guildDB) {
console.log(`Registering database entry for ${guild.id}...`);
const newGuild = new database({
id: guild.id,
tags: misc.tagDefaults,
prefix: "&"
});
await newGuild.save();
}
}
// set activity (a.k.a. the gamer code)
(async function activityChanger() {