Mercurial > libervia-pubsub
comparison idavoll/pubsub.py @ 149:043f2e5ce8cd
Change all calls to jid.JID to jid.internJID to avoid redoing stringprep.
Clean up source to prevent line wrapping.
author | Ralph Meijer <ralphm@ik.nu> |
---|---|
date | Wed, 31 Aug 2005 12:59:27 +0000 |
parents | fee92e499d6d |
children | ea8b4189ae3b |
comparison
equal
deleted
inserted
replaced
148:b03e5ad81173 | 149:043f2e5ce8cd |
---|---|
167 d = self.backend.get_node_meta_data(node) | 167 d = self.backend.get_node_meta_data(node) |
168 d.addCallback(self._add_meta_data, node_type, result_list) | 168 d.addCallback(self._add_meta_data, node_type, result_list) |
169 return d | 169 return d |
170 | 170 |
171 def _add_meta_data(self, meta_data, node_type, result_list): | 171 def _add_meta_data(self, meta_data, node_type, result_list): |
172 form = data_form.Form(type="result", form_type=NS_PUBSUB + "#meta-data") | 172 form = data_form.Form(type="result", |
173 form_type=NS_PUBSUB + "#meta-data") | |
173 | 174 |
174 for meta_datum in meta_data: | 175 for meta_datum in meta_data: |
175 try: | 176 try: |
176 del meta_datum['options'] | 177 del meta_datum['options'] |
177 except KeyError: | 178 except KeyError: |
193 d = self.backend.get_nodes() | 194 d = self.backend.get_nodes() |
194 d.addCallback(lambda nodes: [disco.Item(self.parent.jabberId, node) | 195 d.addCallback(lambda nodes: [disco.Item(self.parent.jabberId, node) |
195 for node in nodes]) | 196 for node in nodes]) |
196 return d | 197 return d |
197 | 198 |
198 components.registerAdapter(ComponentServiceFromService, backend.IBackendService, component.IService) | 199 components.registerAdapter(ComponentServiceFromService, |
200 backend.IBackendService, | |
201 component.IService) | |
199 | 202 |
200 class ComponentServiceFromNotificationService(Service): | 203 class ComponentServiceFromNotificationService(Service): |
201 | 204 |
202 def componentConnected(self, xmlstream): | 205 def componentConnected(self, xmlstream): |
203 self.backend.register_notifier(self.notify) | 206 self.backend.register_notifier(self.notify) |
220 items = event.addElement("items") | 223 items = event.addElement("items") |
221 items["node"] = node_id | 224 items["node"] = node_id |
222 items.children.extend(itemlist) | 225 items.children.extend(itemlist) |
223 self.send(message) | 226 self.send(message) |
224 | 227 |
225 components.registerAdapter(ComponentServiceFromNotificationService, backend.INotificationService, component.IService) | 228 components.registerAdapter(ComponentServiceFromNotificationService, |
229 backend.INotificationService, | |
230 component.IService) | |
226 | 231 |
227 class ComponentServiceFromPublishService(Service): | 232 class ComponentServiceFromPublishService(Service): |
228 | 233 |
229 def componentConnected(self, xmlstream): | 234 def componentConnected(self, xmlstream): |
230 xmlstream.addObserver(PUBSUB_PUBLISH, self.onPublish) | 235 xmlstream.addObserver(PUBSUB_PUBLISH, self.onPublish) |
250 for child in iq.pubsub.publish.children: | 255 for child in iq.pubsub.publish.children: |
251 if child.__class__ == domish.Element and child.name == 'item': | 256 if child.__class__ == domish.Element and child.name == 'item': |
252 items.append(child) | 257 items.append(child) |
253 | 258 |
254 return self.backend.publish(node, items, | 259 return self.backend.publish(node, items, |
255 jid.JID(iq["from"]).userhostJID()) | 260 jid.internJID(iq["from"]).userhostJID()) |
256 | 261 |
257 components.registerAdapter(ComponentServiceFromPublishService, backend.IPublishService, component.IService) | 262 components.registerAdapter(ComponentServiceFromPublishService, |
263 backend.IPublishService, | |
264 component.IService) | |
258 | 265 |
259 class ComponentServiceFromSubscriptionService(Service): | 266 class ComponentServiceFromSubscriptionService(Service): |
260 | 267 |
261 def componentConnected(self, xmlstream): | 268 def componentConnected(self, xmlstream): |
262 xmlstream.addObserver(PUBSUB_SUBSCRIBE, self.onSubscribe) | 269 xmlstream.addObserver(PUBSUB_SUBSCRIBE, self.onSubscribe) |
276 self.handler_wrapper(self._onSubscribe, iq) | 283 self.handler_wrapper(self._onSubscribe, iq) |
277 | 284 |
278 def _onSubscribe(self, iq): | 285 def _onSubscribe(self, iq): |
279 try: | 286 try: |
280 node_id = iq.pubsub.subscribe["node"] | 287 node_id = iq.pubsub.subscribe["node"] |
281 subscriber = jid.JID(iq.pubsub.subscribe["jid"]) | 288 subscriber = jid.internJID(iq.pubsub.subscribe["jid"]) |
282 except KeyError: | 289 except KeyError: |
283 raise BadRequest | 290 raise BadRequest |
284 | 291 |
285 requestor = jid.JID(iq["from"]).userhostJID() | 292 requestor = jid.internJID(iq["from"]).userhostJID() |
286 d = self.backend.subscribe(node_id, subscriber, requestor) | 293 d = self.backend.subscribe(node_id, subscriber, requestor) |
287 d.addCallback(self.return_subscription, subscriber) | 294 d.addCallback(self.return_subscription, subscriber) |
288 return d | 295 return d |
289 | 296 |
290 def return_subscription(self, result, subscriber): | 297 def return_subscription(self, result, subscriber): |
300 self.handler_wrapper(self._onUnsubscribe, iq) | 307 self.handler_wrapper(self._onUnsubscribe, iq) |
301 | 308 |
302 def _onUnsubscribe(self, iq): | 309 def _onUnsubscribe(self, iq): |
303 try: | 310 try: |
304 node_id = iq.pubsub.unsubscribe["node"] | 311 node_id = iq.pubsub.unsubscribe["node"] |
305 subscriber = jid.JID(iq.pubsub.unsubscribe["jid"]) | 312 subscriber = jid.internJID(iq.pubsub.unsubscribe["jid"]) |
306 except KeyError: | 313 except KeyError: |
307 raise BadRequest | 314 raise BadRequest |
308 | 315 |
309 requestor = jid.JID(iq["from"]).userhostJID() | 316 requestor = jid.internJID(iq["from"]).userhostJID() |
310 return self.backend.unsubscribe(node_id, subscriber, requestor) | 317 return self.backend.unsubscribe(node_id, subscriber, requestor) |
311 | 318 |
312 def onOptionsGet(self, iq): | 319 def onOptionsGet(self, iq): |
313 self.handler_wrapper(self._onOptionsGet, iq) | 320 self.handler_wrapper(self._onOptionsGet, iq) |
314 | 321 |
319 self.handler_wrapper(self._onOptionsSet, iq) | 326 self.handler_wrapper(self._onOptionsSet, iq) |
320 | 327 |
321 def _onOptionsSet(self, iq): | 328 def _onOptionsSet(self, iq): |
322 raise OptionsUnavailable | 329 raise OptionsUnavailable |
323 | 330 |
324 components.registerAdapter(ComponentServiceFromSubscriptionService, backend.ISubscriptionService, component.IService) | 331 components.registerAdapter(ComponentServiceFromSubscriptionService, |
332 backend.ISubscriptionService, | |
333 component.IService) | |
325 | 334 |
326 class ComponentServiceFromNodeCreationService(Service): | 335 class ComponentServiceFromNodeCreationService(Service): |
327 | 336 |
328 def componentConnected(self, xmlstream): | 337 def componentConnected(self, xmlstream): |
329 xmlstream.addObserver(PUBSUB_CREATE, self.onCreate) | 338 xmlstream.addObserver(PUBSUB_CREATE, self.onCreate) |
346 self.handler_wrapper(self._onCreate, iq) | 355 self.handler_wrapper(self._onCreate, iq) |
347 | 356 |
348 def _onCreate(self, iq): | 357 def _onCreate(self, iq): |
349 node = iq.pubsub.create.getAttribute("node") | 358 node = iq.pubsub.create.getAttribute("node") |
350 | 359 |
351 owner = jid.JID(iq["from"]).userhostJID() | 360 owner = jid.internJID(iq["from"]).userhostJID() |
352 | 361 |
353 d = self.backend.create_node(node, owner) | 362 d = self.backend.create_node(node, owner) |
354 d.addCallback(self._return_create_response, iq) | 363 d.addCallback(self._return_create_response, iq) |
355 return d | 364 return d |
356 | 365 |
398 try: | 407 try: |
399 node_id = iq.pubsub.configure["node"] | 408 node_id = iq.pubsub.configure["node"] |
400 except KeyError: | 409 except KeyError: |
401 raise BadRequest | 410 raise BadRequest |
402 | 411 |
403 requestor = jid.JID(iq["from"]).userhostJID() | 412 requestor = jid.internJID(iq["from"]).userhostJID() |
404 | 413 |
405 for element in iq.pubsub.configure.elements(): | 414 for element in iq.pubsub.configure.elements(): |
406 if element.name != 'x' or element.uri != data_form.NS_X_DATA: | 415 if element.name != 'x' or element.uri != data_form.NS_X_DATA: |
407 continue | 416 continue |
408 | 417 |
432 except (KeyError, AttributeError): | 441 except (KeyError, AttributeError): |
433 raise BadRequest | 442 raise BadRequest |
434 | 443 |
435 return options | 444 return options |
436 | 445 |
437 components.registerAdapter(ComponentServiceFromNodeCreationService, backend.INodeCreationService, component.IService) | 446 components.registerAdapter(ComponentServiceFromNodeCreationService, |
447 backend.INodeCreationService, | |
448 component.IService) | |
438 | 449 |
439 class ComponentServiceFromAffiliationsService(Service): | 450 class ComponentServiceFromAffiliationsService(Service): |
440 | 451 |
441 def componentConnected(self, xmlstream): | 452 def componentConnected(self, xmlstream): |
442 xmlstream.addObserver(PUBSUB_AFFILIATIONS, self.onAffiliations) | 453 xmlstream.addObserver(PUBSUB_AFFILIATIONS, self.onAffiliations) |
451 | 462 |
452 def onAffiliations(self, iq): | 463 def onAffiliations(self, iq): |
453 self.handler_wrapper(self._onAffiliations, iq) | 464 self.handler_wrapper(self._onAffiliations, iq) |
454 | 465 |
455 def _onAffiliations(self, iq): | 466 def _onAffiliations(self, iq): |
456 d = self.backend.get_affiliations(jid.JID(iq["from"]).userhostJID()) | 467 entity = jid.internJID(iq["from"]).userhostJID() |
468 d = self.backend.get_affiliations(entity) | |
457 d.addCallback(self._return_affiliations_response, iq) | 469 d.addCallback(self._return_affiliations_response, iq) |
458 return d | 470 return d |
459 | 471 |
460 def _return_affiliations_response(self, result, iq): | 472 def _return_affiliations_response(self, result, iq): |
461 reply = domish.Element((NS_PUBSUB, 'pubsub')) | 473 reply = domish.Element((NS_PUBSUB, 'pubsub')) |
466 entity['jid'] = r['jid'].full() | 478 entity['jid'] = r['jid'].full() |
467 entity['affiliation'] = r['affiliation'] or 'none' | 479 entity['affiliation'] = r['affiliation'] or 'none' |
468 entity['subscription'] = r['subscription'] or 'none' | 480 entity['subscription'] = r['subscription'] or 'none' |
469 return [reply] | 481 return [reply] |
470 | 482 |
471 components.registerAdapter(ComponentServiceFromAffiliationsService, backend.IAffiliationsService, component.IService) | 483 components.registerAdapter(ComponentServiceFromAffiliationsService, |
484 backend.IAffiliationsService, | |
485 component.IService) | |
472 | 486 |
473 class ComponentServiceFromItemRetrievalService(Service): | 487 class ComponentServiceFromItemRetrievalService(Service): |
474 | 488 |
475 def componentConnected(self, xmlstream): | 489 def componentConnected(self, xmlstream): |
476 xmlstream.addObserver(PUBSUB_ITEMS, self.onItems) | 490 xmlstream.addObserver(PUBSUB_ITEMS, self.onItems) |
506 try: | 520 try: |
507 item_ids.append(child["id"]) | 521 item_ids.append(child["id"]) |
508 except KeyError: | 522 except KeyError: |
509 raise BadRequest | 523 raise BadRequest |
510 | 524 |
511 d = self.backend.get_items(node_id, jid.JID(iq["from"]), max_items, | 525 d = self.backend.get_items(node_id, |
526 jid.internJID(iq["from"]), | |
527 max_items, | |
512 item_ids) | 528 item_ids) |
513 d.addCallback(self._return_items_response, node_id) | 529 d.addCallback(self._return_items_response, node_id) |
514 return d | 530 return d |
515 | 531 |
516 def _return_items_response(self, result, node_id): | 532 def _return_items_response(self, result, node_id): |
520 for r in result: | 536 for r in result: |
521 items.addRawXml(r) | 537 items.addRawXml(r) |
522 | 538 |
523 return [reply] | 539 return [reply] |
524 | 540 |
525 components.registerAdapter(ComponentServiceFromItemRetrievalService, backend.IItemRetrievalService, component.IService) | 541 components.registerAdapter(ComponentServiceFromItemRetrievalService, |
542 backend.IItemRetrievalService, | |
543 component.IService) | |
526 | 544 |
527 class ComponentServiceFromRetractionService(Service): | 545 class ComponentServiceFromRetractionService(Service): |
528 | 546 |
529 def componentConnected(self, xmlstream): | 547 def componentConnected(self, xmlstream): |
530 xmlstream.addObserver(PUBSUB_RETRACT, self.onRetract) | 548 xmlstream.addObserver(PUBSUB_RETRACT, self.onRetract) |
555 try: | 573 try: |
556 item_ids.append(child["id"]) | 574 item_ids.append(child["id"]) |
557 except KeyError: | 575 except KeyError: |
558 raise BadRequest | 576 raise BadRequest |
559 | 577 |
560 return self.backend.retract_item(node, item_ids, | 578 requestor = jid.internJID(iq["from"]).userhostJID() |
561 jid.JID(iq["from"]).userhostJID()) | 579 return self.backend.retract_item(node, item_ids, requestor) |
562 | 580 |
563 def onPurge(self, iq): | 581 def onPurge(self, iq): |
564 self.handler_wrapper(self._onPurge, iq) | 582 self.handler_wrapper(self._onPurge, iq) |
565 | 583 |
566 def _onPurge(self, iq): | 584 def _onPurge(self, iq): |
567 try: | 585 try: |
568 node = iq.pubsub.purge["node"] | 586 node = iq.pubsub.purge["node"] |
569 except KeyError: | 587 except KeyError: |
570 raise BadRequest | 588 raise BadRequest |
571 | 589 |
572 return self.backend.purge_node(node, jid.JID(iq["from"]).userhostJID()) | 590 return self.backend.purge_node(node, |
573 | 591 jid.internJID(iq["from"]).userhostJID()) |
574 components.registerAdapter(ComponentServiceFromRetractionService, backend.IRetractionService, component.IService) | 592 |
593 components.registerAdapter(ComponentServiceFromRetractionService, | |
594 backend.IRetractionService, | |
595 component.IService) | |
575 | 596 |
576 class ComponentServiceFromNodeDeletionService(Service): | 597 class ComponentServiceFromNodeDeletionService(Service): |
577 | 598 |
578 def __init__(self, backend): | 599 def __init__(self, backend): |
579 Service.__init__(self, backend) | 600 Service.__init__(self, backend) |
618 try: | 639 try: |
619 node = iq.pubsub.delete["node"] | 640 node = iq.pubsub.delete["node"] |
620 except KeyError: | 641 except KeyError: |
621 raise BadRequest | 642 raise BadRequest |
622 | 643 |
623 return self.backend.delete_node(node, jid.JID(iq["from"]).userhostJID()) | 644 return self.backend.delete_node(node, |
624 | 645 jid.internJID(iq["from"]).userhostJID()) |
625 components.registerAdapter(ComponentServiceFromNodeDeletionService, backend.INodeDeletionService, component.IService) | 646 |
647 components.registerAdapter(ComponentServiceFromNodeDeletionService, | |
648 backend.INodeDeletionService, | |
649 component.IService) |