norrisbot
Version:
A Slack bot that kicks asses (roundhouse-kicks to be accurate...)
59 lines (43 loc) • 2.82 kB
JavaScript
;
var _winston = require('winston');
var _winston2 = _interopRequireDefault(_winston);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _norrisbot = require('./norrisbot');
var _norrisbot2 = _interopRequireDefault(_norrisbot);
var _package = require('../package.json');
var _package2 = _interopRequireDefault(_package);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* eslint no-console: off */
if (['help', '--help', '-h', 'version', '--version', '-v'].includes(process.argv[2])) {
console.log('\n ' + _chalk2.default.bgMagenta('norrisbot v' + _package2.default.version) + '\n\n Usage:\n\n ' + _chalk2.default.cyan('norrisbot') + '\n\n Configuration through environment variables:\n\n ' + _chalk2.default.cyan('NORRISBOT_TOKEN') + ' - ' + _chalk2.default.grey('(Mandatory)') + ' The Slack Bot User OAuth Access Token for your organisation/team\n ' + _chalk2.default.cyan('NORRISBOT_TRIGGERS') + ' - ' + _chalk2.default.grey('(Optional)') + ' A coma separated list of words that triggers the bot to reply with a joke (' + _chalk2.default.grey('Default') + ': "Chuck Norris,norrisbot")\n ' + _chalk2.default.cyan('NORRISBOT_CATEGORIES') + ' - ' + _chalk2.default.grey('(Optional)') + ' A coma separated list to enable special joke categories like "explicit" and "nerdy" (' + _chalk2.default.grey('Default') + ': "nerdy")\n ' + _chalk2.default.cyan('NORRISBOT_NO_PICTURES') + ' - ' + _chalk2.default.grey('(Optional)') + ' If set to TRUE will disable pictures in jokes (' + _chalk2.default.grey('Default') + ': "FALSE")\n ' + _chalk2.default.cyan('NORRISBOT_MESSAGE_COLOR') + ' - ' + _chalk2.default.grey('(Optional)') + ' The hex color used by the bot to mark it\'s messages (' + _chalk2.default.grey('Default') + ': "#590088")\n ');
process.exit(0);
}
var logger = new _winston2.default.Logger({
transports: [new _winston2.default.transports.Console({
timestamp: function timestamp() {
return new Date().toISOString();
}
})]
});
logger.cli();
if (!process.env.NORRISBOT_TOKEN) {
logger.error('You must setup the NORRISBOT_TOKEN environment variable before running the bot');
process.exit(1);
}
var options = { logger: logger };
if (process.env.NORRISBOT_TRIGGERS) {
options.triggerOnWords = process.env.NORRISBOT_TRIGGERS.split(',');
}
if (process.env.NORRISBOT_CATEGORIES) {
options.specialCategories = process.env.NORRISBOT_CATEGORIES.split(',');
}
if (process.env.NORRISBOT_NO_PICTURES) {
options.usePictures = false;
}
if (process.env.NORRISBOT_MESSAGE_COLOR) {
options.messageColor = process.env.NORRISBOT_MESSAGE_COLOR;
}
var bot = (0, _norrisbot2.default)(process.env.NORRISBOT_TOKEN, options);
bot.start();