comparison idavoll/pubsub.py @ 83:f3f31aa491df

Fix handling of node creation. Announce pubsub#retrieve-items disco feature in ComponentServiceFromItemRetrievalService.
author Ralph Meijer <ralphm@ik.nu>
date Tue, 09 Nov 2004 15:57:23 +0000
parents 995ba223a43b
children ec557449d1aa
comparison
equal deleted inserted replaced
82:758cb81b97ce 83:f3f31aa491df
302 d = self.backend.create_node(node, owner) 302 d = self.backend.create_node(node, owner)
303 d.addCallback(self.return_create_response, iq) 303 d.addCallback(self.return_create_response, iq)
304 return d 304 return d
305 305
306 def return_create_response(self, result, iq): 306 def return_create_response(self, result, iq):
307 if iq.pubsub.create["node"] is None: 307 node_id = iq.pubsub.create.getAttribute("node")
308 if not node_id or node_id != result:
308 reply = domish.Element((NS_PUBSUB, 'pubsub')) 309 reply = domish.Element((NS_PUBSUB, 'pubsub'))
309 entity = reply.addElement('create') 310 entity = reply.addElement('create')
310 entity['node'] = result['node_id'] 311 entity['node'] = result
311 return [reply] 312 return [reply]
312 313
313 def onConfigureGet(self, iq): 314 def onConfigureGet(self, iq):
314 self.handler_wrapper(self._onConfigureGet, iq) 315 self.handler_wrapper(self._onConfigureGet, iq)
315 316
352 353
353 class ComponentServiceFromItemRetrievalService(Service): 354 class ComponentServiceFromItemRetrievalService(Service):
354 355
355 def componentConnected(self, xmlstream): 356 def componentConnected(self, xmlstream):
356 xmlstream.addObserver(PUBSUB_ITEMS, self.onItems) 357 xmlstream.addObserver(PUBSUB_ITEMS, self.onItems)
358
359 def get_disco_info(self, node):
360 info = []
361
362 if not node:
363 info.append(disco.Feature(NS_PUBSUB + "#retrieve-items"))
364
365 return defer.succeed(info)
357 366
358 def onItems(self, iq): 367 def onItems(self, iq):
359 self.handler_wrapper(self._onItems, iq) 368 self.handler_wrapper(self._onItems, iq)
360 369
361 def _onItems(self, iq): 370 def _onItems(self, iq):