Commit 53b5c5b0e3f733c4f5cf31a2ea8b8bab0cc9bb25

Authored by Adhidarma Hadiwinoto
1 parent 901cf9158a
Exists in master

relogin by http req

Showing 2 changed files with 60 additions and 46 deletions Side-by-side Diff

... ... @@ -25,7 +25,7 @@ router.get('/hello', function(request, response) {
25 25  
26 26 router.get('/broadcastPing', function(request, response) {
27 27 response.end('Ok');
28   - broadcast(config.yahoomessenger.report_to, 'PING');
  28 + ym.broadcast(config.yahoomessenger.report_to, 'PING');
29 29 });
30 30  
31 31 router.get('/status', function(request, response) {
... ... @@ -54,13 +54,9 @@ router.get('/relogin/:apikey', function(request, response) {
54 54 return;
55 55 }
56 56  
57   - logger.info("Logging out");
58   - YahooMessenger.logout();
59   -
60   - logger.info("Logout");
61   - clearTimeout(keepAliveTimer);
62   -
63   - ymLogin();
  57 + logger.info("Got relogin request by http");
  58 + ym.relogin();
  59 + response.end('Ok');
64 60 });
65 61  
66 62 logger.info("Starting http server on port " + config.httpserver.listen_port);
... ... @@ -2,6 +2,11 @@ var YahooMessenger = require("yahoomessenger");
2 2 var striptags = require('striptags');
3 3 var db = require('./db.js');
4 4  
  5 +var oldMessages = [];
  6 +
  7 +var config;
  8 +var logger;
  9 +
5 10 function insertMessages(db_connection, logger_id, direction, partner, message, sentdate) {
6 11  
7 12 db_connection.query(
... ... @@ -23,56 +28,65 @@ function insertMessages(db_connection, logger_id, direction, partner, message, s
23 28 );
24 29 }
25 30  
26   -function start(config, logger) {
27   - var oldMessages = [];
  31 +function pm(destination, message) {
  32 + logger.info("Sending to " + destination + ": " + message);
28 33  
29   - var keepAliveTimer;
  34 + YahooMessenger.sendPM(destination, message);
  35 +}
30 36  
31   - var _keepAliveLoop = function() {
32   - logger.info('Keep alive loop');
33 37  
34   - YahooMessenger.keepAlive();
35   - keepAliveLoop();
36   - }
  38 +function broadcast(destinations, message, exclude) {
  39 + var destinations = destinations.split(',');
  40 + var destinationCount = destinations.length;
37 41  
38   - function isAdmin(user) {
39   - var admins = config.yahoomessenger.admin.split(',');
  42 + for (var i=0; i < destinationCount; i++) {
  43 + destination = destinations[i];
  44 + if (destination == exclude) {
  45 + continue;
  46 + }
40 47  
41   - return (admins.indexOf(user) >= 0);
  48 + pm(destination, message);
42 49 }
  50 +}
43 51  
44   - function keepAliveLoop() {
45   - keepAliveTimer = setTimeout(_keepAliveLoop, config.yahoomessenger.keepalive_interval * 1000);
46   - }
  52 +var keepAliveTimer;
47 53  
48   - function login(){
49   - logger.info("Login to YM as " + config.yahoomessenger.username)
50   - YahooMessenger.login(config.yahoomessenger.username, config.yahoomessenger.password);
51   - }
  54 +var _keepAliveLoop = function() {
  55 + logger.info('Keep alive loop');
52 56  
53   - function pm(destination, message) {
54   - logger.info("Sending to " + destination + ": " + message);
  57 + YahooMessenger.keepAlive();
  58 + keepAliveLoop();
  59 +}
55 60  
56   - YahooMessenger.sendPM(destination, message);
57   - }
  61 +function isAdmin(user) {
  62 + var admins = config.yahoomessenger.admin.split(',');
58 63  
59   - function sendPM(destination, message) {
60   - pm(destination, message);
61   - }
  64 + return (admins.indexOf(user) >= 0);
  65 +}
62 66  
63   - function broadcast(destinations, message, exclude) {
64   - var destinations = destinations.split(',');
65   - var destinationCount = destinations.length;
  67 +function keepAliveLoop() {
  68 + keepAliveTimer = setTimeout(_keepAliveLoop, config.yahoomessenger.keepalive_interval * 1000);
  69 +}
66 70  
67   - for (var i=0; i < destinationCount; i++) {
68   - destination = destinations[i];
69   - if (destination == exclude) {
70   - continue;
71   - }
  71 +function login(){
  72 + logger.info("Login to YM as " + config.yahoomessenger.username)
  73 + YahooMessenger.login(config.yahoomessenger.username, config.yahoomessenger.password);
  74 +}
72 75  
73   - sendPM(destination, message);
74   - }
75   - }
  76 +function logout() {
  77 + logger.info("Logout from YM");
  78 + clearTimeout(keepAliveTimer);
  79 + YahooMessenger.logout();
  80 +}
  81 +
  82 +function relogin() {
  83 + logout();
  84 + YahooMessenger.newInstance();
  85 +}
  86 +
  87 +function start(_config, _logger) {
  88 + config = _config;
  89 + logger = _logger;
76 90  
77 91 function onReady() {
78 92 login();
... ... @@ -152,7 +166,7 @@ function start(config, logger) {
152 166 }
153 167  
154 168 logger.info('Forward to ' + target + ': ' + messageToForward);
155   - sendPM(target, '@' + partner + ': ' + messageToForward);
  169 + pm(target, '@' + partner + ': ' + messageToForward);
156 170  
157 171 } else if (message.charAt(0) == '+') {
158 172 target = message.split(' ', 1).join();
... ... @@ -164,7 +178,7 @@ function start(config, logger) {
164 178 }
165 179  
166 180 logger.info('Clean forward to ' + target + ': ' + messageToForward);
167   - sendPM(target, messageToForward);
  181 + pm(target, messageToForward);
168 182 }
169 183 }
170 184 }
... ... @@ -182,3 +196,7 @@ function start(config, logger) {
182 196 }
183 197  
184 198 exports.start = start;
  199 +exports.broadcast = broadcast;
  200 +exports.pm = pm;
  201 +exports.logout = logout;
  202 +exports.relogin = relogin;