77 lines
1.7 KiB
JavaScript
77 lines
1.7 KiB
JavaScript
// Start without app
|
|
|
|
function prompt(question, callback) {
|
|
var stdin = process.stdin,
|
|
stdout = process.stdout;
|
|
|
|
stdin.resume();
|
|
stdout.write(question);
|
|
|
|
stdin.once('data', function (data) {
|
|
callback(data.toString().trim());
|
|
});
|
|
}
|
|
|
|
const fs = require('fs');
|
|
const winston = require('winston');
|
|
require('winston-daily-rotate-file');
|
|
const path = require('path');
|
|
|
|
// Load config
|
|
const config = require('./config');
|
|
|
|
// Load new plugins
|
|
const PluginManager = require('./plugins/pluginManager.js');
|
|
const pluginManager = new PluginManager(config);
|
|
pluginManager.loadAllPlugins();
|
|
|
|
// Configure logger
|
|
// create a write stream (in append mode)
|
|
const logDirectory = __dirname + '/log';
|
|
|
|
// ensure log directory exists
|
|
if(!fs.existsSync(logDirectory)) {
|
|
fs.mkdirSync(logDirectory);
|
|
}
|
|
|
|
var logger = new (winston.Logger)({
|
|
transports: [
|
|
new (winston.transports.Console)(),
|
|
new (winston.transports.DailyRotateFile)({
|
|
filename: logDirectory + '/ircbot-test.log',
|
|
datePattern: '.yyyy-MM-dd',
|
|
maxsize: 20000
|
|
})
|
|
]
|
|
});
|
|
|
|
const isPm = false
|
|
|
|
function query() {
|
|
prompt('> ', function (message) {
|
|
if(!isPm) {
|
|
pluginManager.testPlugins(message).then(function(results) {
|
|
for(var i = 0; i < results.length; i++) {
|
|
console.log(results[i]);
|
|
}
|
|
query()
|
|
}, function(error) {
|
|
logger.error('Plugin error: ', error);
|
|
});
|
|
|
|
} else {
|
|
// PM
|
|
pluginManager.testPlugins(message, false).then(function(results) {
|
|
for(var i = 0; i < results.length; i++) {
|
|
console.log(results[i]);
|
|
}
|
|
query()
|
|
}, function(error) {
|
|
logger.error('Plugin error: ', error);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
query()
|