UNPKG

discord-client

Version:

Discord bot framework, create Discord bots with Discord.js better and faster.

138 lines (116 loc) 3.62 kB
// Outdated. var fs = require('fs'); var path = require('path'); function dbExists(name) { return fs.existsSync(path.join(__dirname, ('db/' + name + '.json'))); } function create(name, cb) { var base = {} fs.writeFileSync(path.join(__dirname, 'db/' + name + '.json'), JSON.stringify(base)); } function get(name, cb) { if(typeof(cb) === 'function') { if(fs.existsSync(path.join(__dirname, ('db/' + name + '.json')))) { var i = JSON.parse(fs.readFileSync(path.join(__dirname, 'db/' + name + '.json'))); var get = { get: function(data, key) { if(i.hasOwnProperty(data)) { var j = i[data]; if(Array.isArray(j)) { if(!key) { var arr = []; for(var s = 1; s <= j.length; s++) { arr.push(j[s-1]['data']); } return arr; } var x = 0; for(var s = 1; s <= j.length; s++) { if(j[s-1]['data'] == key) x = s-1; } if(containsObject(j, 'data', key)) { return j[x]['data']; } else throw Error('\'' + key + '\' doesn\'t exist in ' + name); } else { return i[data][data]['data']; } } else { throw Error('\'' + data + '\' doesn\'t exist in ' + name); } }, add: function(data) { var x = data.split(':'); if(data.split(': ')) x = data.split(': '); if(!x[1] || x[2]) { throw Error('Incorrect keys'); } else { var base = {} base[x[0]] = {data: x[1]} i[x[0]] = base; fs.writeFileSync(path.join(__dirname, 'db/' + name + '.json'), JSON.stringify(i)); } }, remove: function(data) { var x = data.split(':'); if(data.split(': ')) x = data.split(': '); if(!i[x[0]]) throw Error('\'' + x[0] + '\' doesn\'t exist in ' + x[1]); if(!x[1] || x[2]) { throw Error('Incorrect keys'); } else { if(Array.isArray(i[x[0]])) { var index = i[x[0]].indexOf(x[1]); console.log(i[x[0]].indexOf(x[1])); i[x[0]].splice(x[1], index); fs.writeFileSync(path.join(__dirname, 'db/' + name + '.json'), JSON.stringify(i)); } else { delete i[x[0]] fs.writeFileSync(path.join(__dirname, 'db/' + name + '.json'), JSON.stringify(i)); } } }, push: function(data, text) { var x = data.split(':'); if(data.split(': ')) x = data.split(': '); if(!i[x[0]]) throw Error('You can only push to an existing array or string.'); if(!x[1]) { throw Error('Incorrect keys'); } else { if(!Array.isArray(i[x[0]])) { var a = i[x[0]][x[0]]; var base = { data: x[1] } var newArray = [a, base] delete i[x[0]]; i[x[0]] = newArray; fs.writeFileSync(path.join(__dirname, 'db/' + name + '.json'), JSON.stringify(i)); } else { var base = { data: x[1] } i[x[0]].push(base); fs.writeFileSync(path.join(__dirname, 'db/' + name + '.json'), JSON.stringify(i)); } } } } return cb(get) } else { return cb('Cannot find \'' + name + '\'.'); } } else throw Error('cb is not a function') } function containsObject(list, prop, val) { if (list.length > 0 ) { for (i in list) { if (list[i][prop] === val) { return true; } } } return false; } exports.dbExists = dbExists; exports.create = create; exports.get = get;