diff --git a/adaptor-xmpp.js b/adaptor-xmpp.js index 4b3b3ee..e5d1059 100644 --- a/adaptor-xmpp.js +++ b/adaptor-xmpp.js @@ -30,22 +30,7 @@ function onPM(sender, msg) { callbacks.onPM(sender, msg); } - if (!matrix) { - return; - } - - if (!matrix.buddies) { - matrix.buddies = {}; - } - - if (!matrix.buddies[sender]) { - matrix.buddies[sender] = {}; - } - - matrix.buddies[sender].lastIncoming = { - msg: msg, - lastUpdate: moment().format('YYYY-MM-DD HH:mm:ss') - } + matrixUtil.updateLastIncoming(sender, msg); } function onError(err) { @@ -65,35 +50,12 @@ function onBuddy(jid, state, statusText, resource) { matrixUtil.updateBuddyState(jid, state, statusText, resource); } -function _isPartnerOffline(partner) { - if (!matrix) { return false; } - - if (!isAFriend(partner)) { - logger.verbose(partner + ' is not a friend yet, adding it as a friend') - addFriend(partner); - } - - if (!matrix.buddies[partner]) { return false; } - if (!matrix.buddies[partner].resources) { return false; }; - - var resources = matrix.buddies[partner].resources; - for (var key in resources) { - if (resources.hasOwnProperty(key)) { - var resource = resources[key]; - if (resources[key].state == 'online') { - return false; - } - } - } - logger.verbose('Offline partner detected: ' + partner); - return true; -} - function isPartnerOffline(partner) { if (!matrixUtil.isAFriend(partner)) { + logger.verbose(partner + ' is not a friend yet, adding it as a friend') addFriend(partner); } - + return matrixUtil.isPartnerOffline(partner); } @@ -143,22 +105,7 @@ function sendMessage(destination, msg) { xmpp.send(destination, msg); - if (!matrix) { - return; - } - - if (!matrix.buddies) { - matrix.buddies = {}; - } - - if (!matrix.buddies[destination]) { - matrix.buddies[destination] = {}; - } - - matrix.buddies[destination].lastOutgoing = { - msg: msg, - lastUpdate: moment().format('YYYY-MM-DD HH:mm:ss') - } + matrixUtil.updateLastOutgoing(destination, msg); } function addFriend(friend) { diff --git a/matrix-util.js b/matrix-util.js index d87c3a8..8074e18 100644 --- a/matrix-util.js +++ b/matrix-util.js @@ -86,3 +86,43 @@ MatrixUtil.prototype.isPartnerOffline = function(partner) { logger.verbose('Offline partner detected: ' + partner); return true; } + +MatrixUtil.prototype.updateLastIncoming(sender, msg) { + var matrix = this.matrix; + + if (!matrix) { + return; + } + + if (!matrix.buddies) { + matrix.buddies = {}; + } + + if (!matrix.buddies[sender]) { + matrix.buddies[sender] = {}; + } + + matrix.buddies[sender].lastIncoming = { + msg: msg, + lastUpdate: moment().format('YYYY-MM-DD HH:mm:ss') + } +} + +MatrixUtil.prototype.updateLastOutgoing(destination, msg) { + if (!matrix) { + return; + } + + if (!matrix.buddies) { + matrix.buddies = {}; + } + + if (!matrix.buddies[destination]) { + matrix.buddies[destination] = {}; + } + + matrix.buddies[destination].lastOutgoing = { + msg: msg, + lastUpdate: moment().format('YYYY-MM-DD HH:mm:ss') + } +}