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)
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)
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