kulmapaikka-ircbot/appTest.js

77 lines
1.7 KiB
JavaScript
Raw Normal View History

2018-04-29 17:37:07 +03:00
// 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()