Commit f2f4f03e50b07dcd6c2d3fd4c04e50f37da68fb9
1 parent
6f6de02480
Exists in
master
passing config ke matrix-util
Showing 1 changed file with 2 additions and 2 deletions Inline Diff
adaptor-xmpp.js
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 |