Mercurial > xmpp-account-manager
view util.js @ 4:5e97e1808a35
Add support for the roster.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Sat, 22 Dec 2018 02:59:29 +0100 |
parents | 5aa1bf7154b0 |
children | 3eed9fe0bd7c |
line wrap: on
line source
const NS = { xrd: 'http://docs.oasis-open.org/ns/xri/xrd-1.0', roster: 'jabber:iq:roster', disco_items: 'http://jabber.org/protocol/disco#items', disco_info: 'http://jabber.org/protocol/disco#info', dataforms: 'jabber:x:data', pubsub: 'http://jabber.org/protocol/pubsub', pubsub_owner: 'http://jabber.org/protocol/pubsub#owner', avatar_metadata: 'urn:xmpp:avatar:metadata', avatar_data: 'urn:xmpp:avatar:data', nickname: 'http://jabber.org/protocol/nick', }; function nsResolver(prefix) { return NS[prefix] || null; } function parseXPath(elem, xpath, result) { if (result === undefined) result = XPathResult.FIRST_ORDERED_NODE_TYPE; const value = elem.getRootNode().evaluate(xpath, elem, nsResolver, result, null); if (result == XPathResult.FIRST_ORDERED_NODE_TYPE) return value.singleNodeValue; return value; } function configurePEPField(node, key, value, cb, err_cb) { return $iq({type: 'set'}) .c('pubsub', {xmlns: 'http://jabber.org/protocol/pubsub#owner'}) .c('configure', {node: node}) .c('x', {xmlns: 'jabber:x:data', type: 'submit'}) .c('field', {'var': 'FORM_TYPE', type: 'hidden'}) .c('value') .t('http://jabber.org/protocol/pubsub#node_config') .up() .up() .c('field', {'var': key}) .c('value') .t(value) .up() .up(); }