diff plugins/pubsub.js @ 30:1506992c33e2

Split plugins.js into multiple plugins.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Sat, 28 Jan 2012 01:50:22 +0100
parents plugins.js@630b9579fe4a
children bdfbd58b4835
line wrap: on
line diff
copy from plugins.js
copy to plugins/pubsub.js
--- a/plugins.js
+++ b/plugins/pubsub.js
@@ -16,171 +16,6 @@
   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */
 
-////////////
-//Presence// http://xmpp.org/rfcs/rfc6121.html#presence
-////////////
-Lightstring.stanza.presence = function(aPriority) {
-  if(aPriority)
-    return "<presence><priority>"+aPriority+"</priority></presence>";
-  else
-    return "<presence/>";
-};
-Lightstring.presence = function(aConnection, aPriority) {
-  aConnection.send(Lightstring.stanza.presence(aPriority));
-};
-
-//////////
-//Roster//
-//////////
-Lightstring.NS.roster = 'jabber:iq:roster';
-Lightstring.stanza.roster = {
-  'get': function() {
-    return "<iq type='get'><query xmlns='"+Lightstring.NS.roster+"'/></iq>";
-  },
-  add: function(aAddress, aGroups, aCustomName) {
-    var iq = $iq({type: 'set'}).c('query', {xmlns: Lightstring.NS.roster}).c('item', {jid: aAddress}).tree();
-    if(aCustomName) iq.querySelector('item').setAttribute(aCustomName);
-    for (var i=0; i<aGroups.length; i++) {
-      if(i === 0) iq.querySelector('item').appendChild(document.createElement('group'));
-      iq.querySelector('group').appendChild(document.createElement(aGroups[i]));
-    }
-    return iq;
-  },
-  remove: function(aAddress) {
-    return $iq({type: 'set'}).c('query', {xmlns: Lightstring.NS.roster}).c('item', {jid: aAddress, subscription: 'remove'}).tree();
-  }
-};
-Lightstring.getRoster = function(connection, aCallback) {
-  connection.send(this.stanza.roster.get(), function(answer){
-    var contacts = [];
-    var elems = answer.querySelectorAll('item');
-    for(var i = 0; i<elms.length; i++) {
-      var item = elms[i];
-      var jid = item.getAttribute('jid');
-      var name = item.getAttribute('name');
-      var groups = item.querySelectorAll('group');
-      var subscription = item.getAttribute('subscription');
-      var contact = {};
-      if(name)
-        contact.name = name;
-      if(jid)
-        contact.jid = jid;
-      if(subscription)
-        contact.subscription = subscription;
-      if(groups.length > 0) {
-        contact.groups = [];
-        groups.forEach(function(group) {
-          contact.groups.push(group.textContent);
-        });
-      }
-
-      contacts.push(contact);
-    };
-    aCallback(contacts);
-  });
-}
-/////////
-//vCard//
-/////////
-Lightstring.NS.vcard = 'vcard-temp';
-Lightstring.stanza.vcard = {
-  'get': function(aTo) {
-    if(aTo)
-      return "<iq type='get' to='"+aTo+"'><vCard xmlns='"+Lightstring.NS.vcard+"'/></iq>";
-    else
-      return "<iq type='get'><vCard xmlns='"+Lightstring.NS.vcard+"'/></iq>";
-  }
-};
-//FIXME we should return a proper vcard, not an XMPP one
-Lightstring.getVcard = function(aConnection, aTo, aCallback) {
-  aConnection.send(Lightstring.stanza.vcard.get(aTo), function(answer, err){
-    if(answer) {
-      var vcard = answer.querySelector('vCard');
-      if(vcard)
-        aCallback(vcard);
-    }    
-    else
-      aCallback(null);
-  });
-}
-/////////
-//Disco//
-/////////
-Lightstring.NS['disco#info'] = "http://jabber.org/protocol/disco#info";
-Lightstring.NS['disco#items'] = "http://jabber.org/protocol/disco#items";
-Lightstring.stanza.disco = {
-  items: function(aTo, aNode) {
-    if(aTo)
-      var iq = "<iq type='get' to='"+aTo+"'>";
-    else
-      var iq = "<iq type='get'>";
-    
-    if(aNode)
-      var query = "<query xmlns='"+Lightstring.NS['disco#items']+"' node='"+aNode+"'/>";
-    else
-      var query = "<query xmlns='"+Lightstring.NS['disco#items']+"'/>";
-      
-    return iq+query+"</iq>";
-  },
-  info: function(aTo, aNode) {
-    if(aTo)
-      var iq = "<iq type='get' to='"+aTo+"'>";
-    else
-      var iq = "<iq type='get'>";
-    if(aNode)
-      var query = "<query xmlns='"+Lightstring.NS['disco#info']+"' node='"+aNode+"'/>";
-    else
-      var query = "<query xmlns='"+Lightstring.NS['disco#info']+"'/>";
-      
-    return iq+query+"</iq>";
-  }
-};
-Lightstring.discoItems = function(aConnection, aTo, aCallback) {
-  aConnection.send(Lightstring.stanza.disco.items(aTo), function(answer){
-    var items = [];
-    var elms = answer.querySelectorAll('item');
-    for(var i = 0; i < elms.length; i++) {
-      var node = elms[i];
-      var item = {
-        jid: node.getAttribute('jid'),
-        name: node.getAttribute('name'),
-        node: node.getAttribute('node')
-      }
-      items.push(item);
-    };
-    if(aCallback)
-      aCallback(items);
-  });
-};
-Lightstring.discoInfo = function(aConnection, aTo, aNode, aCallback) {
-  aConnection.send(Lightstring.stanza.disco.info(aTo, aNode), function(answer){
-    var identities = [];
-    var features = [];
-
-    var children = answer.firstChild.children;
-    var length = children.length;
-
-    for (var i = 0; i < length; i++) {
-      var child = children[i];
-
-      if (child.localName === 'feature')
-        features.push(child.getAttributeNS(null, 'var'));
-
-      else if (child.localName === 'identity') {
-        var identity = {
-          category: child.getAttributeNS(null, 'category'),
-          type: child.getAttributeNS(null, 'type')
-        };
-        var name = child.getAttributeNS(null, 'name');
-        if (name)
-          identity.name = name;
-        identities.push(identity);
-      }
-    }
-
-    aCallback({identities: identities, features: features});
-  });
-};
 //////////
 //PubSub//
 //////////
@@ -299,15 +134,3 @@ Lightstring.pubsubGetAffiliations = func
 Lightstring.pubsubSetAffiliations = function(aConnection, aTo, aNode, aAffiliations, aCallback) {
   aConnection.send(Lightstring.stanza.pubsub.setAffiliations(aTo, aNode, aAffiliations));
 };
-//////
-//IM//
-//////
-Lightstring.stanza.message = {
-  normal: function(aTo, aSubject, aText) {
-    return "<message type='normal' to='"+aTo+"'><subject>"+aSubject+"</subject><body>"+aText+"</body></message>";
-  },
-  chat: function(aTo, aText) {
-    return "<message type='chat' to='"+aTo+"'><body>"+aText+"</body></message>";
-  }
-};
-