Mercurial > libervia-backend
comparison src/plugins/plugin_xep_0277.py @ 2218:6a2fa651d7fa
plugin XEP-0060: node create/delete improvments:
- use client instead of profile for createNode and deleteNode
- new bridge method psCreateNode
- renamed psDeleteNode to psNodeDelete
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 03 Apr 2017 00:22:58 +0200 |
parents | e67e8cd24141 |
children | 79d279d1ee88 |
comparison
equal
deleted
inserted
replaced
2217:893030a9d351 | 2218:6a2fa651d7fa |
---|---|
510 comments_service = jid.JID(mb_data['comments_service']) | 510 comments_service = jid.JID(mb_data['comments_service']) |
511 except KeyError: | 511 except KeyError: |
512 comments_service = self.getCommentsService(client, service) | 512 comments_service = self.getCommentsService(client, service) |
513 | 513 |
514 try: | 514 try: |
515 yield self._p.createNode(comments_service, comments_node, options, profile_key=profile) | 515 yield self._p.createNode(client, comments_service, comments_node, options) |
516 except error.StanzaError as e: | 516 except error.StanzaError as e: |
517 if e.condition == 'conflict': | 517 if e.condition == 'conflict': |
518 log.info(u"node {} already exists on service {}".format(comments_node, comments_service)) | 518 log.info(u"node {} already exists on service {}".format(comments_node, comments_service)) |
519 else: | 519 else: |
520 raise e | 520 raise e |
627 def mbSetAccess(self, access="presence", profile_key=C.PROF_KEY_NONE): | 627 def mbSetAccess(self, access="presence", profile_key=C.PROF_KEY_NONE): |
628 """Create a microblog node on PEP with given access | 628 """Create a microblog node on PEP with given access |
629 | 629 |
630 If the node already exists, it change options | 630 If the node already exists, it change options |
631 @param access: Node access model, according to xep-0060 #4.5 | 631 @param access: Node access model, according to xep-0060 #4.5 |
632 @param profile_key: profile key""" | 632 @param profile_key: profile key |
633 """ | |
634 client = self.host.getClient(profile_key) | |
633 | 635 |
634 _jid, xmlstream = self.host.getJidNStream(profile_key) | 636 _jid, xmlstream = self.host.getJidNStream(profile_key) |
635 if not _jid: | 637 if not _jid: |
636 log.error(_(u"Can't find profile's jid")) | 638 log.error(_(u"Can't find profile's jid")) |
637 return | 639 return |
648 | 650 |
649 def err_cb(s_error): | 651 def err_cb(s_error): |
650 #If the node already exists, the condition is "conflict", | 652 #If the node already exists, the condition is "conflict", |
651 #else we have an unmanaged error | 653 #else we have an unmanaged error |
652 if s_error.value.condition == 'conflict': | 654 if s_error.value.condition == 'conflict': |
653 #d = self.host.plugins["XEP-0060"].deleteNode(_jid.userhostJID(), NS_MICROBLOG, profile_key=profile_key) | 655 #d = self.host.plugins["XEP-0060"].deleteNode(client, _jid.userhostJID(), NS_MICROBLOG) |
654 #d.addCallback(lambda x: create_node().addCallback(cb).addErrback(fatal_err)) | 656 #d.addCallback(lambda x: create_node().addCallback(cb).addErrback(fatal_err)) |
655 change_node_options().addCallback(cb).addErrback(fatal_err) | 657 change_node_options().addCallback(cb).addErrback(fatal_err) |
656 else: | 658 else: |
657 fatal_err(s_error) | 659 fatal_err(s_error) |
658 | 660 |
659 def create_node(): | 661 def create_node(): |
660 return self._p.createNode(_jid.userhostJID(), NS_MICROBLOG, _options, profile_key=profile_key) | 662 return self._p.createNode(client, _jid.userhostJID(), NS_MICROBLOG, _options) |
661 | 663 |
662 def change_node_options(): | 664 def change_node_options(): |
663 return self._p.setOptions(_jid.userhostJID(), NS_MICROBLOG, _jid.userhostJID(), _options, profile_key=profile_key) | 665 return self._p.setOptions(_jid.userhostJID(), NS_MICROBLOG, _jid.userhostJID(), _options, profile_key=profile_key) |
664 | 666 |
665 create_node().addCallback(cb).addErrback(err_cb) | 667 create_node().addCallback(cb).addErrback(err_cb) |