diff options
Diffstat (limited to 'sleekxmpp/plugins/xep_0060')
-rw-r--r-- | sleekxmpp/plugins/xep_0060/pubsub.py | 5 | ||||
-rw-r--r-- | sleekxmpp/plugins/xep_0060/stanza/pubsub.py | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/sleekxmpp/plugins/xep_0060/pubsub.py b/sleekxmpp/plugins/xep_0060/pubsub.py index cb6cbacd..fadcf652 100644 --- a/sleekxmpp/plugins/xep_0060/pubsub.py +++ b/sleekxmpp/plugins/xep_0060/pubsub.py @@ -283,7 +283,8 @@ class xep_0060(base_plugin): return iq.send(block=block, callback=callback, timeout=timeout) def publish(self, jid, node, item_id=None, payload=None, items=None, - ifrom=None, block=True, callback=None, timeout=None): + options=None, ifrom=None, block=True, callback=None, + timeout=None): """ Add or edit items in a node. @@ -304,6 +305,8 @@ class xep_0060(base_plugin): item['id'] = id item['payload'] = payload iq['pubsub']['publish'].append(item) + if options is not None: + iq['pubsub']['publish_options'] = options return iq.send(block=block, callback=callback, timeout=timeout) def retract(self, jid, node, item, ifrom=None, block=True, diff --git a/sleekxmpp/plugins/xep_0060/stanza/pubsub.py b/sleekxmpp/plugins/xep_0060/stanza/pubsub.py index 139992e3..6a9a3df9 100644 --- a/sleekxmpp/plugins/xep_0060/stanza/pubsub.py +++ b/sleekxmpp/plugins/xep_0060/stanza/pubsub.py @@ -257,12 +257,16 @@ class PublishOptions(ElementBase): return form def set_publish_options(self, value): - self.xml.append(value.getXML()) + if value is None: + del self['publish_options'] + else: + self.xml.append(value.getXML()) return self def del_publish_options(self): config = self.xml.find('{jabber:x:data}x') - self.xml.remove(config) + if config is not None: + self.xml.remove(config) registerStanzaPlugin(Pubsub, PublishOptions) |