index.js
1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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');
broadcastReport('Request come from HTTP to set status to: ' + request.body.status);
ym.setStatus(request.body.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);