summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins/xep_0060/stanza
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/plugins/xep_0060/stanza')
-rw-r--r--sleekxmpp/plugins/xep_0060/stanza/pubsub.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/sleekxmpp/plugins/xep_0060/stanza/pubsub.py b/sleekxmpp/plugins/xep_0060/stanza/pubsub.py
index 7a61a9fe..4967e1a7 100644
--- a/sleekxmpp/plugins/xep_0060/stanza/pubsub.py
+++ b/sleekxmpp/plugins/xep_0060/stanza/pubsub.py
@@ -243,6 +243,31 @@ class Options(ElementBase):
registerStanzaPlugin(Pubsub, Options)
registerStanzaPlugin(Subscribe, Options)
+class PublishOptions(ElementBase):
+ namespace = 'http://jabber.org/protocol/pubsub'
+ name = 'publish-options'
+ plugin_attrib = 'publish_options'
+ interfaces = set(('publish_options'))
+ plugin_attrib_map = {}
+ plugin_tag_map = {}
+
+ def get_publish_options(self):
+ config = self.xml.find('{jabber:x:data}x')
+ form = xep_0004.Form()
+ if config is not None:
+ form.fromXML(config)
+ return form
+
+ def set_publish_options(self, value):
+ self.xml.append(value.getXML())
+ return self
+
+ def del_publish_options(self):
+ config = self.xml.find('{jabber:x:data}x')
+ self.xml.remove(config)
+
+registerStanzaPlugin(Pubsub, PublishOptions)
+
class PubsubState(ElementBase):
namespace = 'http://jabber.org/protocol/psstate'
name = 'state'