From 46f23f73482fcd1e1b71eda9ec6d42803f6c7d1a Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Wed, 31 Aug 2011 14:55:37 -0700 Subject: Test publishng an item with options. --- sleekxmpp/plugins/xep_0060/pubsub.py | 5 ++++- sleekxmpp/plugins/xep_0060/stanza/pubsub.py | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'sleekxmpp/plugins') 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) -- cgit v1.2.3