From 9ffdba8643ca8e52a30ce227331cd772a5fea6d1 Mon Sep 17 00:00:00 2001 From: Nathan Fritz Date: Wed, 3 Aug 2011 23:56:24 -0700 Subject: the great xep_0060 re-organization in preperation for rewrite --- sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py | 152 ++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py (limited to 'sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py') diff --git a/sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py b/sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py new file mode 100644 index 00000000..05889611 --- /dev/null +++ b/sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py @@ -0,0 +1,152 @@ +from sleekxmpp.xmlstream.stanzabase import registerStanzaPlugin, ElementBase, ET, JID +from sleekxmpp.stanza.iq import Iq +from sleekxmpp.stanza.message import Message +from sleekxmpp.basexmpp import basexmpp +from sleekxmpp.xmlstream.xmlstream import XMLStream +import logging +from sleekxmpp.plugins import xep_0004 +from base import OptionalSetting +from pubsub import Affiliations, Affiliation, Configure, Subscriptions + +class PubsubOwner(ElementBase): + namespace = 'http://jabber.org/protocol/pubsub#owner' + name = 'pubsub' + plugin_attrib = 'pubsub_owner' + interfaces = set(tuple()) + plugin_attrib_map = {} + plugin_tag_map = {} + +registerStanzaPlugin(Iq, PubsubOwner) + +class DefaultConfig(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 getType(self): + t = self._getAttr('type') + if not t: t = 'leaf' + return t + + def getConfig(self): + return self['form'] + + def setConfig(self, value): + self['form'].setStanzaValues(value.getStanzaValues()) + return self + +registerStanzaPlugin(PubsubOwner, DefaultConfig) +registerStanzaPlugin(DefaultConfig, xep_0004.Form) + +class OwnerAffiliations(Affiliations): + namespace = 'http://jabber.org/protocol/pubsub#owner' + interfaces = set(('node')) + plugin_attrib_map = {} + plugin_tag_map = {} + + def append(self, affiliation): + if not isinstance(affiliation, OwnerAffiliation): + raise TypeError + self.xml.append(affiliation.xml) + return self.affiliations.append(affiliation) + +registerStanzaPlugin(PubsubOwner, OwnerAffiliations) + +class OwnerAffiliation(Affiliation): + namespace = 'http://jabber.org/protocol/pubsub#owner' + interfaces = set(('affiliation', 'jid')) + plugin_attrib_map = {} + plugin_tag_map = {} + +class OwnerConfigure(Configure): + namespace = 'http://jabber.org/protocol/pubsub#owner' + interfaces = set(('node', 'config')) + plugin_attrib_map = {} + plugin_tag_map = {} + +registerStanzaPlugin(PubsubOwner, OwnerConfigure) + +class OwnerDefault(OwnerConfigure): + namespace = 'http://jabber.org/protocol/pubsub#owner' + interfaces = set(('node', 'config')) + plugin_attrib_map = {} + plugin_tag_map = {} + + def getConfig(self): + return self['form'] + + def setConfig(self, value): + self['form'].setStanzaValues(value.getStanzaValues()) + return self + +registerStanzaPlugin(PubsubOwner, OwnerDefault) +registerStanzaPlugin(OwnerDefault, xep_0004.Form) + +class OwnerDelete(ElementBase, OptionalSetting): + namespace = 'http://jabber.org/protocol/pubsub#owner' + name = 'delete' + plugin_attrib = 'delete' + plugin_attrib_map = {} + plugin_tag_map = {} + interfaces = set(('node',)) + +registerStanzaPlugin(PubsubOwner, OwnerDelete) + +class OwnerPurge(ElementBase, OptionalSetting): + namespace = 'http://jabber.org/protocol/pubsub#owner' + name = 'purge' + plugin_attrib = name + plugin_attrib_map = {} + plugin_tag_map = {} + +registerStanzaPlugin(PubsubOwner, OwnerPurge) + +class OwnerRedirect(ElementBase): + namespace = 'http://jabber.org/protocol/pubsub#owner' + name = 'redirect' + plugin_attrib = name + interfaces = set(('node', 'jid')) + plugin_attrib_map = {} + plugin_tag_map = {} + + def setJid(self, value): + self._setAttr('jid', str(value)) + + def getJid(self): + return JID(self._getAttr('jid')) + +registerStanzaPlugin(OwnerDelete, OwnerRedirect) + +class OwnerSubscriptions(Subscriptions): + namespace = 'http://jabber.org/protocol/pubsub#owner' + interfaces = set(('node',)) + plugin_attrib_map = {} + plugin_tag_map = {} + + def append(self, subscription): + if not isinstance(subscription, OwnerSubscription): + raise TypeError + self.xml.append(subscription.xml) + return self.subscriptions.append(subscription) + +registerStanzaPlugin(PubsubOwner, OwnerSubscriptions) + +class OwnerSubscription(ElementBase): + namespace = 'http://jabber.org/protocol/pubsub#owner' + name = 'subscription' + plugin_attrib = name + interfaces = set(('jid', 'subscription')) + plugin_attrib_map = {} + plugin_tag_map = {} + + def setJid(self, value): + self._setAttr('jid', str(value)) + + def getJid(self): + return JID(self._getAttr('from')) -- cgit v1.2.3 From 7cd39a6aad5d3e4cb537bf2ab3ec12a1c55c811e Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Thu, 4 Aug 2011 11:38:14 -0700 Subject: Fix imports for xep_0060 --- sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py') diff --git a/sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py b/sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py index 05889611..a90780cc 100644 --- a/sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py +++ b/sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py @@ -5,8 +5,8 @@ from sleekxmpp.basexmpp import basexmpp from sleekxmpp.xmlstream.xmlstream import XMLStream import logging from sleekxmpp.plugins import xep_0004 -from base import OptionalSetting -from pubsub import Affiliations, Affiliation, Configure, Subscriptions +from sleekxmpp.plugins.xep_0060.stanza.base import OptionalSetting +from sleekxmpp.plugins.xep_0060.stanza.pubsub import Affiliations, Affiliation, Configure, Subscriptions class PubsubOwner(ElementBase): namespace = 'http://jabber.org/protocol/pubsub#owner' @@ -25,7 +25,7 @@ class DefaultConfig(ElementBase): interfaces = set(('node', 'type', 'config')) plugin_attrib_map = {} plugin_tag_map = {} - + def __init__(self, *args, **kwargs): ElementBase.__init__(self, *args, **kwargs) @@ -33,10 +33,10 @@ class DefaultConfig(ElementBase): t = self._getAttr('type') if not t: t = 'leaf' return t - + def getConfig(self): return self['form'] - + def setConfig(self, value): self['form'].setStanzaValues(value.getStanzaValues()) return self @@ -49,7 +49,7 @@ class OwnerAffiliations(Affiliations): interfaces = set(('node')) plugin_attrib_map = {} plugin_tag_map = {} - + def append(self, affiliation): if not isinstance(affiliation, OwnerAffiliation): raise TypeError @@ -77,10 +77,10 @@ class OwnerDefault(OwnerConfigure): interfaces = set(('node', 'config')) plugin_attrib_map = {} plugin_tag_map = {} - + def getConfig(self): return self['form'] - + def setConfig(self, value): self['form'].setStanzaValues(value.getStanzaValues()) return self @@ -114,10 +114,10 @@ class OwnerRedirect(ElementBase): interfaces = set(('node', 'jid')) plugin_attrib_map = {} plugin_tag_map = {} - + def setJid(self, value): self._setAttr('jid', str(value)) - + def getJid(self): return JID(self._getAttr('jid')) @@ -128,7 +128,7 @@ class OwnerSubscriptions(Subscriptions): interfaces = set(('node',)) plugin_attrib_map = {} plugin_tag_map = {} - + def append(self, subscription): if not isinstance(subscription, OwnerSubscription): raise TypeError @@ -147,6 +147,6 @@ class OwnerSubscription(ElementBase): def setJid(self, value): self._setAttr('jid', str(value)) - + def getJid(self): return JID(self._getAttr('from')) -- cgit v1.2.3