var iniparser = require('iniparser'); var config = iniparser.parseSync('./config.ini'); if (config.yahoomessenger.keepalive_interval == null) { config.yahoomessenger.keepalive_interval = 60; } var strftime = require('strftime'); var logger = require('winston'); logger.remove(logger.transports.Console); logger.add(logger.transports.Console, { timestamp: function() { return (strftime('%F %T')); }}); var ym = require('./ym'); var YahooMessenger = ym.start(config, logger); var http = require('http'); var nsr = require('node-simple-router'); var router = nsr(); router.get('/hello', function(request, response) { response.end('Hello bro'); }); router.get('/broadcastPing', function(request, response) { response.end('Ok'); ym.broadcast(config.yahoomessenger.report_to, 'PING'); }); router.get('/status', function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write(config.yahoomessenger.status); response.end(); }); router.post('/status', function(request, response) { var apikey = request.body.apikey; if (apikey != config.httpserver.apikey) { response.end('Invalid APIKEY: ' + apikey); return; } response.end('Ok'); config.yahoomessenger.status = request.body.status; YahooMessenger.setCustomAwayStatus(config.yahoomessenger.status); }); router.get('/relogin/:apikey', function(request, response) { var apikey = request.params.apikey; if (apikey != config.httpserver.apikey){ response.end('Invalid APIKEY: ' + apikey); return; } logger.info("Got relogin request by http"); ym.relogin(); response.end('Ok'); }); logger.info("Starting http server on port " + config.httpserver.listen_port); var httpServer = http.createServer(router).listen(config.httpserver.listen_port);