diff --git a/ym.js b/ym.js index c2542b0..2d8eb0d 100644 --- a/ym.js +++ b/ym.js @@ -181,7 +181,9 @@ function start(_config, _logger) { broadcast(config.yahoomessenger.report_to, '@' + data.sender + ': ' + message, partner); if ((direction == 'IN') && (isAdmin(partner))) { + if (message.charAt(0) == '@') { + target = message.split(' ', 1).join(); target = target.slice(1); @@ -193,7 +195,9 @@ function start(_config, _logger) { logger.info('Forward to ' + target + ': ' + messageToForward); pm(target, '@' + partner + ': ' + messageToForward); - } else if (message.charAt(0) == '+') { + } + else if (message.charAt(0) == '+') { + target = message.split(' ', 1).join(); target = target.slice(1); @@ -205,10 +209,24 @@ function start(_config, _logger) { logger.info('Clean forward to ' + target + ': ' + messageToForward); pm(target, messageToForward); - } else if (message == '!relogin') { + } + else if (message.startsWith('!relogin')) { + broadcast(config.yahoomessenger.report_to, 'relogin requested by' + data.sender); logger.info('Relogin request by pm'); relogin(); + + } + else if (message.startsWith('!setstatus ')) { + + logger.info('Set status request by pm'); + + var newStatus = message.replace('!setstatus').trim(); + + broadcast(config.yahoomessenger.report_to, 'Set new status requested by' + data.sender + ': ' + newStatus); + config.yahoomessenger.status = newStatus; + YahooMessenger.setCustomAwayStatus(config.yahoomessenger.status); + } } }