diff --git a/adaptor-xmpp.js b/adaptor-xmpp.js index 5c146fb..ac1ca81 100644 --- a/adaptor-xmpp.js +++ b/adaptor-xmpp.js @@ -77,6 +77,25 @@ function onBuddy(jid, state, statusText, resource) { } } +function isPartnerOffline(partner) { + if (!matrix) { return false; } + + 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 init(_username, _password, _logger, _callbacks) { username = _username; password = _password; @@ -143,3 +162,4 @@ exports.init = init; exports.sendMessage = sendMessage; exports.setOptions = setOptions; exports.addFriend = addFriend; +exports.isPartnerOffline = isPartnerOffline;