Exemple #1
0
    def createNode(self, service, nodeIdentifier=None, nodeType=None, options=[]):
        """
        Create a publish subscribe node.
        
        @param service: The publish subscribe service to create the node at.
        @type service: L{JID}
        @param nodeIdentifier: Optional suggestion for the id of the node.
        @type nodeIdentifier: C{unicode}
        """
        

        request = pubsub._PubSubRequest(self.xmlstream, 'create')
        if nodeIdentifier:
            request.command['node'] = nodeIdentifier
        if nodeType:
            request.command['type'] = nodeType
        request.pubsub.addElement('configure')
        if options:
            
            configure = data_form.Form('submit', 
                                       fields=options,
                                       formNamespace=pubsub.NS_PUBSUB+'#node_config')
        
            request.pubsub.configure.addChild(configure.toElement())

        
        def cb(iq):
            try:
                new_node = iq.pubsub.create["node"]
            except AttributeError:
                # the suggested node identifier was accepted
                new_node = nodeIdentifier
            return new_node

        return request.send(service).addCallback(cb)
Exemple #2
0
 def retract(self, service, nodeIdentifier, item_id, method='set'):
     request = pubsub._PubSubRequest(self.xmlstream, 
                                     'retract', 
                                     pubsub.NS_PUBSUB_OWNER, 
                                     method=method)
     request.command['node'] = nodeIdentifier
     item = request.command.addElement('item')
     item['id'] = item_id
     
     return request.send(service)
Exemple #3
0
 def _buildConfigureRequest(self, method='set', nodeIdentifier=None, options=[]):
     if nodeIdentifier is None:
         nodeIdentifier = self.node
     request = pubsub._PubSubRequest(self.xmlstream, 
                              'configure', 
                              pubsub.NS_PUBSUB_OWNER, 
                              method=method)
     request.command['node'] = nodeIdentifier
     if options:
         configure = data_form.Form('submit', 
                                    fields=options,
                                    formNamespace=pubsub.NS_PUBSUB+'#node_config')
         
         request.command.addChild(configure.toElement())
         
     return request