diff --git a/index.js b/index.js index c5c4d2b..ca44e65 100644 --- a/index.js +++ b/index.js @@ -42,8 +42,8 @@ router.post('/status', function(request, response) { } response.end('Ok'); - config.yahoomessenger.status = request.body.status; - YahooMessenger.setCustomAwayStatus(config.yahoomessenger.status); + broadcastReport('Request come from HTTP to set status to: ' + request.body.status); + ym.setStatus(request.body.status); }); router.get('/relogin/:apikey', function(request, response) { diff --git a/ym.js b/ym.js index 5de45db..464487d 100644 --- a/ym.js +++ b/ym.js @@ -56,6 +56,10 @@ function broadcast(destinations, message, exclude) { } } +function broadcastReport(message) { + broadcast(config.yahoomessenger.report_to, message); +}; + var keepAliveTimer; var _keepAliveLoop = function() { @@ -81,6 +85,11 @@ function keepAliveLoop() { keepAliveTimer = setTimeout(_keepAliveLoop, config.yahoomessenger.keepalive_interval * 1000); } +function setStatus(newStatus) { + config.yahoomessenger.status = newStatus; + YahooMessenger.setCustomAwayStatus(config.yahoomessenger.status); +} + function login(){ logger.info("Login to YM as " + config.yahoomessenger.username + '(' + config.yahoomessenger.password + ')') YahooMessenger.login(config.yahoomessenger.username, config.yahoomessenger.password); @@ -125,7 +134,7 @@ function start(_config, _logger) { YahooMessenger.setCustomAwayStatus(config.yahoomessenger.status); }; - broadcast(config.yahoomessenger.report_to, config.yahoomessenger.report_message); + broadcastReport(config.yahoomessenger.report_message); keepAliveLoop(); } @@ -218,8 +227,9 @@ function start(_config, _logger) { } else if (message.indexOf('!relogin') == 0) { - broadcast(config.yahoomessenger.report_to, 'relogin requested by ' + data.sender); - logger.info('Relogin request by pm'); + broadcastReport('relogin requested by ' + data.sender); + logger.info('Relogin request by pm, executing on 10 secs'); + sleep.sleep(10); relogin(); } @@ -229,10 +239,8 @@ function start(_config, _logger) { 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); - + broadcastReport('Set new status requested by ' + data.sender + ': ' + newStatus); + setStatus(newStatus); } else if (message.indexOf('!ping') == 0) { @@ -267,6 +275,8 @@ function start(_config, _logger) { exports.start = start; exports.broadcast = broadcast; +exports.broadcastReport = broadcastReport; exports.pm = pm; exports.logout = logout; exports.relogin = relogin; +exports.setStatus = setStatus;