mirror of
https://github.com/litruv/DAdmin.git
synced 2026-07-24 02:36:11 +10:00
142 lines
4.8 KiB
JavaScript
142 lines
4.8 KiB
JavaScript
const mysql = require('mysql')
|
|
const fs = require('fs')
|
|
|
|
|
|
var connection
|
|
|
|
module.exports = {
|
|
checkguilds: (discordclient) => {
|
|
discordclient.guilds.forEach(guild => {
|
|
check_guild_exists(discordclient, guild.id).then((r) => {
|
|
console.log(r);
|
|
console.log(guild.name);
|
|
});
|
|
|
|
this.checkusers(discordclient, guild);
|
|
});
|
|
},
|
|
|
|
get_setting: (settingname, guildID = 0) => {
|
|
return new Promise((resolve, reject) => {
|
|
readSetting(settingname, guildID).then((settingreturn) => {
|
|
resolve(settingreturn.value);
|
|
}).catch(err => {
|
|
reject(console.error(`Error: with settingname '${settingname}' on Guild ${guildID} ` + err))
|
|
})
|
|
})
|
|
|
|
},
|
|
|
|
set_setting: (guildID, settingname, value) => {
|
|
writeSetting(settingname, value, guildID);
|
|
},
|
|
|
|
connect: () => {
|
|
return new Promise((resolve, reject) => {
|
|
readConfig('dbconfig.json')
|
|
.then(config => {
|
|
resolve(dbConnect(config))
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
function readConfig(configFile, formatting = 'utf8') {
|
|
return new Promise((resolve, reject) => {
|
|
fs.readFile(configFile, formatting, function (err, data) {
|
|
if (err) {
|
|
if (err.code == "ENOENT") {
|
|
console.error("Copy dbconfig.template.json to dbconfig.json and edit first")
|
|
reject(`Error reading config file ${configFile} (${formatting})`)
|
|
// process.exit()
|
|
}
|
|
reject(`Other Error reading config file ${configFile} (${formatting} - ${err})`)
|
|
}
|
|
else {
|
|
if (!JSON.parse(data))
|
|
reject('Error parsing config file, invalid JSON')
|
|
let dbsettings = JSON.parse(data)
|
|
|
|
dbsettings.user = dbsettings.mysql_user
|
|
dbsettings.host = dbsettings.mysql_host
|
|
dbsettings.password = dbsettings.mysql_password
|
|
dbsettings.database = dbsettings.mysql_db
|
|
|
|
resolve(dbsettings)
|
|
}
|
|
});
|
|
})
|
|
}
|
|
|
|
function writeSetting(settingName, settingValue, guildId = 0) {
|
|
return new Promise((resolve, reject) => {
|
|
setTimeout(reject, 1000, new Error("Didn't write something within a second"))
|
|
|
|
connection.query(`SELECT * FROM settings WHERE setting='${settingName}' AND serverID='${guildId}'`,
|
|
function (error, results, fields) {
|
|
if (results.length > 0) {
|
|
//console.log(`UPDATE settings SET value=${settingValue} WHERE setting=${settingName} AND serverID=${guildId}`)
|
|
connection.query(`UPDATE settings SET value= ? WHERE setting= ? AND serverID= ?`, [settingValue, settingName, guildId],
|
|
function (error, results, fields) {
|
|
if (error)
|
|
reject(error)
|
|
resolve(results)
|
|
})
|
|
}
|
|
else {
|
|
connection.query(`INSERT INTO settings (setting, value, serverID) VALUES ('${settingName}', '${settingValue}', '${guildId}')`,
|
|
function (error, results, fields) {
|
|
if (error)
|
|
reject(error)
|
|
resolve(results)
|
|
})
|
|
|
|
}
|
|
})
|
|
|
|
})
|
|
}
|
|
|
|
function readSetting(settingName, guildId = 0) {
|
|
return new Promise((resolve, reject) => {
|
|
setTimeout(reject, 1000, new Error("Didn't read something within a second"))
|
|
|
|
connection.query(`SELECT * FROM settings WHERE setting='${settingName}' AND serverID='${guildId}'`,
|
|
function (error, results, fields) {
|
|
if (error)
|
|
reject(error)
|
|
//console.log(results)
|
|
resolve(results[0])
|
|
})
|
|
})
|
|
}
|
|
|
|
function deleteSetting(settingName, guildId = 0) {
|
|
return new Promise((resolve, reject) => {
|
|
setTimeout(reject, 1000, new Error("Didn't delete something within a second"))
|
|
|
|
connection.query(`DELETE FROM settings WHERE setting='${settingName}' AND serverID='${guildId}'`,
|
|
function (error, results, fields) {
|
|
if (error)
|
|
reject(error)
|
|
resolve(results)
|
|
})
|
|
})
|
|
}
|
|
|
|
function dbConnect(config) {
|
|
return new Promise((resolve, reject) => {
|
|
let conn = mysql.createConnection(config)
|
|
|
|
conn.connect(error => {
|
|
if (error)
|
|
reject("Couldn't connect to db" + error)
|
|
connection = conn;
|
|
resolve(conn)
|
|
})
|
|
})
|
|
}
|
|
|
|
function closeConnection() {
|
|
connection.end()
|
|
} |