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 db = require('./db.js'); db_connection = db.start(config.db.host, config.db.username, config.db.password, config.db.name, logger); function insertMessages(db_connection, logger_id, direction, partner, message, sentdate) { db_connection.query( 'INSERT INTO messages SET ?', { transport: 'YAHOO', logger: logger_id, direction: direction, partner: partner, message: message, sentdate: sentdate, }, function(err) { if (err != null) { logger.error("Error on inserting messages to DB, error: " + err); } } ); } 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'); 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("Logging out"); YahooMessenger.logout(); logger.info("Logout"); clearTimeout(keepAliveTimer); ymLogin(); }); logger.info("Starting http server on port " + config.httpserver.listen_port); var httpServer = http.createServer(router).listen(config.httpserver.listen_port);