UNPKG

norrisbot

Version:

A Slack bot that kicks asses (roundhouse-kicks to be accurate...)

59 lines (43 loc) 2.82 kB
#!/usr/bin/env node 'use strict'; 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();