summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sleekxmpp/plugins/stanza_pubsub.py33
-rw-r--r--sleekxmpp/plugins/xep_0060.py1
2 files changed, 34 insertions, 0 deletions
diff --git a/sleekxmpp/plugins/stanza_pubsub.py b/sleekxmpp/plugins/stanza_pubsub.py
index 58f9c896..09cff88a 100644
--- a/sleekxmpp/plugins/stanza_pubsub.py
+++ b/sleekxmpp/plugins/stanza_pubsub.py
@@ -318,6 +318,39 @@ class DefaultConfig(ElementBase):
stanzaPlugin(Pubsub, DefaultConfig)
+class DefaultConfigOwner(ElementBase):
+ namespace = 'http://jabber.org/protocol/pubsub#owner'
+ name = 'default'
+ plugin_attrib = 'default'
+ interfaces = set(('node', 'type', 'config'))
+ plugin_attrib_map = {}
+ plugin_tag_map = {}
+
+ def __init__(self, *args, **kwargs):
+ ElementBase.__init__(self, *args, **kwargs)
+
+ def getConfig(self):
+ config = self.xml.find('{jabber:x:data}x')
+ form = xep_0004.Form()
+ if config is not None:
+ form.fromXML(config)
+ return form
+
+ def setConfig(self, value):
+ self.xml.append(value.getXML())
+ return self
+
+ def delConfig(self):
+ config = self.xml.find('{jabber:x:data}x')
+ self.xml.remove(config)
+
+ def getType(self):
+ t = self._getAttr('type')
+ if not t: t == 'leaf'
+ return t
+
+stanzaPlugin(PubsubOwner, DefaultConfig)
+
class Options(ElementBase):
namespace = 'http://jabber.org/protocol/pubsub'
name = 'options'
diff --git a/sleekxmpp/plugins/xep_0060.py b/sleekxmpp/plugins/xep_0060.py
index 8c6acd01..ea75a7d6 100644
--- a/sleekxmpp/plugins/xep_0060.py
+++ b/sleekxmpp/plugins/xep_0060.py
@@ -3,6 +3,7 @@ from . import base
import logging
#from xml.etree import cElementTree as ET
from .. xmlstream.stanzabase import ElementBase, ET
+from . import stanza_pubsub
class xep_0060(base.base_plugin):
"""