Commit ee50fa5a04f6d584bbd6e2dbf4dc2212fd310278

Authored by Adhidarma Hadiwinoto
1 parent 24b73cd865
Exists in master

exports isPartnerHealthy

Showing 1 changed file with 1 additions and 0 deletions Inline Diff

1 var xmpp = require('simple-xmpp'); 1 var xmpp = require('simple-xmpp');
2 var moment = require('moment'); 2 var moment = require('moment');
3 var MatrixUtil = require('./matrix-util'); 3 var MatrixUtil = require('./matrix-util');
4 4
5 var username; 5 var username;
6 var password; 6 var password;
7 7
8 var callbacks; 8 var callbacks;
9 var matrix; 9 var matrix;
10 var matrixUtil; 10 var matrixUtil;
11 11
12 function onOnline(data) { 12 function onOnline(data) {
13 logger.info('XMPP login successful', {data: data}); 13 logger.info('XMPP login successful', {data: data});
14 14
15 xmpp.getRoster(); 15 xmpp.getRoster();
16 16
17 if (callbacks.onOnline) { 17 if (callbacks.onOnline) {
18 callbacks.onOnline(); 18 callbacks.onOnline();
19 } 19 }
20 } 20 }
21 21
22 function onPM(sender, msg) { 22 function onPM(sender, msg) {
23 if (sender.toLowerCase() == username.replace(/\/.*/, '').toLowerCase()) { 23 if (sender.toLowerCase() == username.replace(/\/.*/, '').toLowerCase()) {
24 return; 24 return;
25 } 25 }
26 26
27 logger.verbose('Got a message', {from: sender, msg: msg}); 27 logger.verbose('Got a message', {from: sender, msg: msg});
28 28
29 if (callbacks.onPM) { 29 if (callbacks.onPM) {
30 callbacks.onPM(sender, msg); 30 callbacks.onPM(sender, msg);
31 } 31 }
32 32
33 matrixUtil.updateLastIncoming(sender, msg); 33 matrixUtil.updateLastIncoming(sender, msg);
34 } 34 }
35 35
36 function onError(err) { 36 function onError(err) {
37 logger.warn('XMPP error, terminating in 3 secs', {err: err}); 37 logger.warn('XMPP error, terminating in 3 secs', {err: err});
38 setTimeout(process.exit, 3000, 1); 38 setTimeout(process.exit, 3000, 1);
39 } 39 }
40 40
41 function onSubscribe(sender) { 41 function onSubscribe(sender) {
42 xmpp.acceptSubscription(sender); 42 xmpp.acceptSubscription(sender);
43 } 43 }
44 44
45 function onUnsubscribe(sender) { 45 function onUnsubscribe(sender) {
46 xmpp.acceptUnsubscription(sender); 46 xmpp.acceptUnsubscription(sender);
47 } 47 }
48 48
49 function onBuddy(jid, state, statusText, resource) { 49 function onBuddy(jid, state, statusText, resource) {
50 matrixUtil.updateBuddyState(jid, state, statusText, resource); 50 matrixUtil.updateBuddyState(jid, state, statusText, resource);
51 } 51 }
52 52
53 function isPartnerOffline(partner) { 53 function isPartnerOffline(partner) {
54 return matrixUtil.isPartnerOffline(partner); 54 return matrixUtil.isPartnerOffline(partner);
55 } 55 }
56 56
57 function isPartnerHealthy(partner) { 57 function isPartnerHealthy(partner) {
58 return matrixUtil.isPartnerHealthy(partner); 58 return matrixUtil.isPartnerHealthy(partner);
59 } 59 }
60 60
61 function init(_username, _password, _logger, _callbacks) { 61 function init(_username, _password, _logger, _callbacks) {
62 username = _username; 62 username = _username;
63 password = _password; 63 password = _password;
64 logger = _logger; 64 logger = _logger;
65 callbacks = _callbacks; 65 callbacks = _callbacks;
66 66
67 xmpp.on('online', onOnline); 67 xmpp.on('online', onOnline);
68 xmpp.on('chat', onPM); 68 xmpp.on('chat', onPM);
69 xmpp.on('error', onError); 69 xmpp.on('error', onError);
70 xmpp.on('subscribe', onSubscribe); 70 xmpp.on('subscribe', onSubscribe);
71 xmpp.on('unsubscribe', onUnsubscribe); 71 xmpp.on('unsubscribe', onUnsubscribe);
72 xmpp.on('buddy', onBuddy); 72 xmpp.on('buddy', onBuddy);
73 73
74 xmpp.unsubscribe(); 74 xmpp.unsubscribe();
75 75
76 xmpp.connect({ 76 xmpp.connect({
77 jid: username, 77 jid: username,
78 password: password 78 password: password
79 }); 79 });
80 } 80 }
81 81
82 function setOptions(options) { 82 function setOptions(options) {
83 if (!options.matrix) { 83 if (!options.matrix) {
84 return; 84 return;
85 } 85 }
86 86
87 matrix = options.matrix; 87 matrix = options.matrix;
88 matrixUtil = new MatrixUtil({matrix: matrix, logger: logger}); 88 matrixUtil = new MatrixUtil({matrix: matrix, logger: logger});
89 } 89 }
90 90
91 function sendMessage(destination, msg) { 91 function sendMessage(destination, msg) {
92 if (!destination) { 92 if (!destination) {
93 logger.warn('adaptorXmpp.sendMessage: Undefined destination, send message aborted', {destination: destination, msg: msg}); 93 logger.warn('adaptorXmpp.sendMessage: Undefined destination, send message aborted', {destination: destination, msg: msg});
94 } 94 }
95 95
96 if (!msg) { 96 if (!msg) {
97 logger.warn('adaptorXmpp.sendMessage: Undefined message, send message aborted', {destination: destination, msg: msg}); 97 logger.warn('adaptorXmpp.sendMessage: Undefined message, send message aborted', {destination: destination, msg: msg});
98 } 98 }
99 99
100 100
101 if (destination.toLowerCase() != username.replace(/\/.*/, '').toLowerCase()) { 101 if (destination.toLowerCase() != username.replace(/\/.*/, '').toLowerCase()) {
102 logger.verbose('Sending message', {from: username, destination: destination, msg: msg}); 102 logger.verbose('Sending message', {from: username, destination: destination, msg: msg});
103 } 103 }
104 104
105 xmpp.send(destination, msg); 105 xmpp.send(destination, msg);
106 106
107 matrixUtil.updateLastOutgoing(destination, msg); 107 matrixUtil.updateLastOutgoing(destination, msg);
108 } 108 }
109 109
110 function addFriend(friend) { 110 function addFriend(friend) {
111 logger.verbose('Adding XMPP friend: ' + friend); 111 logger.verbose('Adding XMPP friend: ' + friend);
112 xmpp.subscribe(friend); 112 xmpp.subscribe(friend);
113 } 113 }
114 114
115 exports.init = init; 115 exports.init = init;
116 exports.sendMessage = sendMessage; 116 exports.sendMessage = sendMessage;
117 exports.setOptions = setOptions; 117 exports.setOptions = setOptions;
118 exports.addFriend = addFriend; 118 exports.addFriend = addFriend;
119 exports.isPartnerOffline = isPartnerOffline; 119 exports.isPartnerOffline = isPartnerOffline;
120 exports.isPartnerHealthy = isPartnerHealthy;
120 121