dbot/modules/admin/admin.js

65 lines
1.8 KiB
JavaScript
Raw Normal View History

/**
* Module Name: Admin
* Description: Set of commands which only one who is a DepressionBot
* administrator can run.
*/
2013-01-12 18:36:59 +01:00
var fs = require('fs'),
2013-01-14 17:56:34 +01:00
_ = require('underscore')._;
var admin = function(dbot) {
this.internalAPI = {
'getCurrentConfig': function(configKey, callback) {
2013-06-04 02:06:41 +02:00
var configPath = dbot.config;
configKey = configKey.split('.');
2013-06-04 02:06:41 +02:00
for(var i=0;i<configKey.length;i++) {
if(_.has(configPath, configKey[i])) {
configPath = configPath[configKey[i]];
} else {
configPath = null;
break;
}
}
2013-06-04 02:06:41 +02:00
callback(configPath);
},
'setConfig': function(configKey, newOption, callback) {
var configPath = dbot.customConfig,
oldOption = null;
configKey = configKey.split('.');
for(var i=0;i<configKey.length-1;i++) {
if(!_.has(configPath, configKey[i])) {
configPath[configKey[i]] = {};
}
configPath = configPath[configKey[i]];
}
if(_.has(configPath, configKey[i])) {
oldOption = configPath[configKey[i]];
}
configPath[configKey[i]] = newOption;
this.internalAPI.saveConfig();
2013-06-06 00:59:37 +02:00
dbot.reloadModules();
callback(null, oldOption);
}.bind(this),
'saveConfig': function() {
var config = dbot.customConfig;
fs.writeFileSync('config.json', JSON.stringify(config, null, ' '));
2013-06-04 02:06:41 +02:00
}
};
2015-07-19 18:56:08 +02:00
this.onLoad = function() {
2015-07-19 19:03:18 +02:00
dbot.api.timers.addTimer(60000, function() {
2018-05-20 23:46:19 +02:00
dbot.save(function() {});
2015-07-19 19:03:18 +02:00
});
2015-07-19 18:56:08 +02:00
};
};
exports.fetch = function(dbot) {
2013-01-14 17:56:34 +01:00
return new admin(dbot);
};