From 7e5e9542e9873a251986bedfe274904e629920d0 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Thu, 1 Sep 2011 13:36:11 -0700 Subject: Add support for notify attribute when retracting an item. --- sleekxmpp/plugins/xep_0060/pubsub.py | 3 ++- sleekxmpp/plugins/xep_0060/stanza/pubsub.py | 26 ++++++++++++++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) (limited to 'sleekxmpp/plugins/xep_0060') diff --git a/sleekxmpp/plugins/xep_0060/pubsub.py b/sleekxmpp/plugins/xep_0060/pubsub.py index 2a31e374..ec3fb9bb 100644 --- a/sleekxmpp/plugins/xep_0060/pubsub.py +++ b/sleekxmpp/plugins/xep_0060/pubsub.py @@ -317,7 +317,7 @@ class xep_0060(base_plugin): iq['pubsub']['publish_options'] = options return iq.send(block=block, callback=callback, timeout=timeout) - def retract(self, jid, node, id, ifrom=None, block=True, + def retract(self, jid, node, id, notify=None, ifrom=None, block=True, callback=None, timeout=None): """ Delete a single item from a node. @@ -325,6 +325,7 @@ class xep_0060(base_plugin): iq = self.xmpp.Iq(sto=jid, sfrom=ifrom, stype='set') iq['pubsub']['retract']['node'] = node + iq['pubsub']['retract']['notify'] = notify iq['pubsub']['retract']['item']['id'] = id return iq.send(block=block, callback=callback, timeout=timeout) diff --git a/sleekxmpp/plugins/xep_0060/stanza/pubsub.py b/sleekxmpp/plugins/xep_0060/stanza/pubsub.py index 1a1de17a..45781c44 100644 --- a/sleekxmpp/plugins/xep_0060/stanza/pubsub.py +++ b/sleekxmpp/plugins/xep_0060/stanza/pubsub.py @@ -129,6 +129,23 @@ class Retract(ElementBase): plugin_attrib = name interfaces = set(('node', 'notify')) + def get_notify(self): + notify = self._get_attr('notify') + if notify in ('0', 'false'): + return False + elif notify in ('1', 'true'): + return True + return None + + def set_notify(self, value): + del self['notify'] + if value is None: + return + elif value in (True, '1', 'true', 'True'): + self._set_attr('notify', 'true') + else: + self._set_attr('notify', 'false') + class Unsubscribe(ElementBase): namespace = 'http://jabber.org/protocol/pubsub' @@ -252,6 +269,11 @@ class PubsubStateEvent(ElementBase): intefaces = set(tuple()) +register_stanza_plugin(Iq, PubsubState) +register_stanza_plugin(Message, PubsubStateEvent) +register_stanza_plugin(PubsubStateEvent, PubsubState) + + register_stanza_plugin(Iq, Pubsub) register_stanza_plugin(Pubsub, Affiliations) register_stanza_plugin(Pubsub, Configure) @@ -274,7 +296,3 @@ register_stanza_plugin(Retract, Item) register_stanza_plugin(Subscribe, Options) register_stanza_plugin(Subscription, SubscribeOptions) register_stanza_plugin(Subscriptions, Subscription, iterable=True) - -register_stanza_plugin(Message, PubsubStateEvent) -register_stanza_plugin(Iq, PubsubState) -register_stanza_plugin(PubsubStateEvent, PubsubState) -- cgit v1.2.3