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)