Commit f2f4f03e50b07dcd6c2d3fd4c04e50f37da68fb9

Authored by Adhidarma Hadiwinoto
1 parent 6f6de02480
Exists in master

passing config ke matrix-util

Showing 1 changed file with 2 additions and 2 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.config) { 83 if (options.config) {
84 config = options.config; 84 config = options.config;
85 } 85 }
86 86
87 if (!options.matrix) { 87 if (!options.matrix) {
88 return; 88 return;
89 } 89 }
90 90
91 matrix = options.matrix; 91 matrix = options.matrix;
92 matrixUtil = new MatrixUtil({matrix: matrix, logger: logger}); 92 matrixUtil = new MatrixUtil({matrix: matrix, logger: logger, config: config});
93 } 93 }
94 94
95 function sendMessage(destination, msg) { 95 function sendMessage(destination, msg) {
96 if (!destination) { 96 if (!destination) {
97 logger.warn('adaptorXmpp.sendMessage: Undefined destination, send message aborted', {destination: destination, msg: msg}); 97 logger.warn('adaptorXmpp.sendMessage: Undefined destination, send message aborted', {destination: destination, msg: msg});
98 } 98 }
99 99
100 if (!msg) { 100 if (!msg) {
101 logger.warn('adaptorXmpp.sendMessage: Undefined message, send message aborted', {destination: destination, msg: msg}); 101 logger.warn('adaptorXmpp.sendMessage: Undefined message, send message aborted', {destination: destination, msg: msg});
102 } 102 }
103 103
104 104
105 if (destination.toLowerCase() != username.replace(/\/.*/, '').toLowerCase()) { 105 if (destination.toLowerCase() != username.replace(/\/.*/, '').toLowerCase()) {
106 logger.verbose('Sending message', {from: username, destination: destination, msg: msg}); 106 logger.verbose('Sending message', {from: username, destination: destination, msg: msg});
107 } 107 }
108 108
109 xmpp.send(destination, msg); 109 xmpp.send(destination, msg);
110 110
111 matrixUtil.updateLastOutgoing(destination, msg); 111 matrixUtil.updateLastOutgoing(destination, msg);
112 } 112 }
113 113
114 function addFriend(friend) { 114 function addFriend(friend) {
115 logger.verbose('Adding XMPP friend: ' + friend); 115 logger.verbose('Adding XMPP friend: ' + friend);
116 xmpp.subscribe(friend); 116 xmpp.subscribe(friend);
117 } 117 }
118 118
119 exports.init = init; 119 exports.init = init;
120 exports.sendMessage = sendMessage; 120 exports.sendMessage = sendMessage;
121 exports.setOptions = setOptions; 121 exports.setOptions = setOptions;
122 exports.addFriend = addFriend; 122 exports.addFriend = addFriend;
123 exports.isPartnerOffline = isPartnerOffline; 123 exports.isPartnerOffline = isPartnerOffline;
124 exports.isPartnerHealthy = isPartnerHealthy; 124 exports.isPartnerHealthy = isPartnerHealthy;
125 125