summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins/xep_0060
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/plugins/xep_0060')
-rw-r--r--sleekxmpp/plugins/xep_0060/pubsub.py5
-rw-r--r--sleekxmpp/plugins/xep_0060/stanza/pubsub.py8
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)