/* Accepts: mediator.on('command:help', ...); mediator.on('command:nick', ...); mediator.on('command:key', ...); mediator.on('command:key', ...); mediator.on('command:torch', ...); mediator.on('command:title', ...); Emits: mediator.emit('nick:changed',...); mediator.emit('key:changed',...); mediator.emit('console:clear',...); mediator.emit('console:info',...); mediator.emit('console:error',...); */ import $ from './$.js'; export default function (mediator, settings, templates) { var // Private properties nick, key, setKey = function(payload) { /*if (!host) { return post('error', templates.messages.key_no_host); }*/ // Make sure the key meets the length requirements if (payload.length > settings.key.maxLen) { return mediator.emit('console:error',templates.messages.key_to_long); } else if (payload.length < settings.key.minLen) { return mediator.emit('console:error',templates.messages.key_to_short); } // Set key key = payload; // Keep other modules informed mediator.emit('key:changed',key); // Inform that the key has been set return mediator.emit('console:info', templates.messages.key_ok ); }, help = function () { mediator.emit('console:motd', templates.help); }, clear = function () { mediator.emit('console:clear'); }, setTorch = function (payload) { mediator.emit('console:torch',payload); }, setNick = function (payload) { // Make sure the nick meets the length requirements if (payload.length > settings.nick.maxLen) { return mediator('console:error', $.template(templates.messages.nick_to_long, { nick_maxLen: settings.nick.maxLen } )); } else if (payload.length < settings.nick.minLen) { return mediator('console:error', $.template(templates.messages.nick_to_short, {nick_minLen: settings.nick.minLen } )); } // Set nick nick = payload; // Keep other modules informed mediator.emit('nick:changed', nick); // Inform that the nick has been set mediator.emit('console:info', $.template(templates.messages.nick_set, { nick: $.escapeHtml(nick)})); }, title = function(payload) { mediator.emit('window:title',payload); mediator.emit('console:info', $.template(templates.messages.title_set, { title: $.escapeHtml(payload)})); }; mediator.on('command:help', help); mediator.on('command:clear', clear); mediator.on('command:nick', setNick); mediator.on('command:key', setKey); mediator.on('command:torch', setTorch); mediator.on('command:title', title); }