help.js 1.28 KB
const config = require('komodo-sdk/config');
const logger = require('tektrans-logger');
const commands = require('../command-group');

const cmds = [];
for (let [key, value] of Object.entries(commands)) {
    if (value.indexOf('_') !== 0) cmds.push(key.toUpperCase());
}
cmds.sort();

const cmds2 = [];
let cmdOnAGroup = [];
let lastKeyword;
cmds.forEach((item) => {
    if (lastKeyword && lastKeyword[0] !== item[0]) {
        cmds2.push(cmdOnAGroup.join(', '));
        cmdOnAGroup = [];
    }

    cmdOnAGroup.push(item);
    lastKeyword = item;
});

cmds2.push(cmdOnAGroup.join(', '));

// const msg = 'Perintah tersedia: ' + cmds.join(', ') + '.'
const msg = 'Perintah tersedia:\n\n' + cmds2.join(',\n\n');

logger.verbose('Help return message constructed', { count: cmds.length, chars: msg.length, lines: msg.split(/\r\n|\r|\n/).length });

module.exports = function(tokens, params, cb) {
    const blacklisted = ((config.blacklist_help_for_origins || []).indexOf(params.origin || '') >= 0)
        || ((config.blacklist_help_for_origin_transports || []).indexOf(params.origin_transport || '') >= 0)
    ;
    
    const body = blacklisted ? `Perintah "${tokens[0]}" tdk tersedia pd jalur SMS dan sejenis.` :  msg;
    const responseParams = {
        body
    }

    cb(null, null, responseParams);
}