From efa4a9b330dc477bf27d2639c60a879c3e28a00d Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Thu, 1 Sep 2011 14:20:58 -0700 Subject: [PATCH] More stanza cleanup for pubsub. --- sleekxmpp/plugins/xep_0060/stanza/__init__.py | 16 +++++-- sleekxmpp/plugins/xep_0060/stanza/base.py | 45 ++++++++++--------- 2 files changed, 37 insertions(+), 24 deletions(-) diff --git a/sleekxmpp/plugins/xep_0060/stanza/__init__.py b/sleekxmpp/plugins/xep_0060/stanza/__init__.py index e3faf6a..37f52f0 100644 --- a/sleekxmpp/plugins/xep_0060/stanza/__init__.py +++ b/sleekxmpp/plugins/xep_0060/stanza/__init__.py @@ -1,4 +1,12 @@ -from sleekxmpp.plugins.xep_0060.stanza.pubsub import Pubsub, Affiliation, Affiliations, Subscription, Subscriptions, SubscribeOptions, Item, Items, Create, Publish, Retract, Unsubscribe, Subscribe, Configure, Options, PubsubState, PubsubStateEvent -from sleekxmpp.plugins.xep_0060.stanza.pubsub_owner import PubsubOwner, DefaultConfig, OwnerAffiliations, OwnerAffiliation, OwnerConfigure, OwnerDefault, OwnerDelete, OwnerPurge, OwnerRedirect, OwnerSubscriptions, OwnerSubscription -from sleekxmpp.plugins.xep_0060.stanza.pubsub_event import Event, EventItem, EventRetract, EventItems, EventCollection, EventAssociate, EventDisassociate, EventConfiguration, EventPurge, EventSubscription -from sleekxmpp.plugins.xep_0060.stanza.pubsub_errors import PubsubErrorCondition +""" + SleekXMPP: The Sleek XMPP Library + Copyright (C) 2011 Nathanael C. Fritz + This file is part of SleekXMPP. + + See the file LICENSE for copying permission. +""" + +from sleekxmpp.plugins.xep_0060.stanza.pubsub import * +from sleekxmpp.plugins.xep_0060.stanza.pubsub_owner import * +from sleekxmpp.plugins.xep_0060.stanza.pubsub_event import * +from sleekxmpp.plugins.xep_0060.stanza.pubsub_errors import * diff --git a/sleekxmpp/plugins/xep_0060/stanza/base.py b/sleekxmpp/plugins/xep_0060/stanza/base.py index 9b1efe1..d0b7851 100644 --- a/sleekxmpp/plugins/xep_0060/stanza/base.py +++ b/sleekxmpp/plugins/xep_0060/stanza/base.py @@ -1,24 +1,29 @@ -from xml.etree import cElementTree as ET +""" + SleekXMPP: The Sleek XMPP Library + Copyright (C) 2011 Nathanael C. Fritz + This file is part of SleekXMPP. + + See the file LICENSE for copying permission. +""" + +from sleekxmpp.xmlstream import ET + class OptionalSetting(object): - interfaces = set(('required',)) - def setRequired(self, value): - value = bool(value) - if value and not self['required']: - self.xml.append(ET.Element("{%s}required" % self.namespace)) - elif not value and self['required']: - self.delRequired() - - def getRequired(self): - required = self.xml.find("{%s}required" % self.namespace) - if required is not None: - return True - else: - return False - - def delRequired(self): - required = self.xml.find("{%s}required" % self.namespace) - if required is not None: - self.xml.remove(required) + interfaces = set(('required',)) + def set_required(self, value): + if value in (True, 'true', 'True', '1'): + self.xml.append(ET.Element("{%s}required" % self.namespace)) + elif self['required']: + self.del_required() + + def get_required(self): + required = self.xml.find("{%s}required" % self.namespace) + return required is not None + + def del_required(self): + required = self.xml.find("{%s}required" % self.namespace) + if required is not None: + self.xml.remove(required)