summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins/google/nosave/stanza.py
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2013-01-24 23:05:05 -0800
committerLance Stout <lancestout@gmail.com>2013-01-24 23:05:05 -0800
commita1b33da9ca7eb0d93c02b842935386d9286d82be (patch)
treef603d724710c76afb434fd10607bf360634a9f5c /sleekxmpp/plugins/google/nosave/stanza.py
parent1741059cf629960fbbe0c135fa530a786ec9b72e (diff)
downloadslixmpp-a1b33da9ca7eb0d93c02b842935386d9286d82be.tar.gz
slixmpp-a1b33da9ca7eb0d93c02b842935386d9286d82be.tar.bz2
slixmpp-a1b33da9ca7eb0d93c02b842935386d9286d82be.tar.xz
slixmpp-a1b33da9ca7eb0d93c02b842935386d9286d82be.zip
Refactor Google GTalk extensions into a single meta plugin.
Diffstat (limited to 'sleekxmpp/plugins/google/nosave/stanza.py')
-rw-r--r--sleekxmpp/plugins/google/nosave/stanza.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/sleekxmpp/plugins/google/nosave/stanza.py b/sleekxmpp/plugins/google/nosave/stanza.py
new file mode 100644
index 00000000..d8701322
--- /dev/null
+++ b/sleekxmpp/plugins/google/nosave/stanza.py
@@ -0,0 +1,59 @@
+"""
+ SleekXMPP: The Sleek XMPP Library
+ Copyright (C) 2013 Nathanael C. Fritz, Lance J.T. Stout
+ This file is part of SleekXMPP.
+
+ See the file LICENSE for copying permission.
+"""
+
+from sleekxmpp.jid import JID
+from sleekxmpp.xmlstream import ElementBase, register_stanza_plugin
+
+
+class NoSave(ElementBase):
+ name = 'x'
+ namespace = 'google:nosave'
+ plugin_attrib = 'google_nosave'
+ interfaces = set(['value'])
+
+ def get_value(self):
+ return self._get_attr('value', '') == 'enabled'
+
+ def set_value(self, value):
+ self._set_attr('value', 'enabled' if value else 'disabled')
+
+
+class NoSaveQuery(ElementBase):
+ name = 'query'
+ namespace = 'google:nosave'
+ plugin_attrib = 'google_nosave'
+ interfaces = set()
+
+
+class Item(ElementBase):
+ name = 'item'
+ namespace = 'google:nosave'
+ plugin_attrib = 'item'
+ plugin_multi_attrib = 'items'
+ interfaces = set(['jid', 'source', 'value'])
+
+ def get_value(self):
+ return self._get_attr('value', '') == 'enabled'
+
+ def set_value(self, value):
+ self._set_attr('value', 'enabled' if value else 'disabled')
+
+ def get_jid(self):
+ return JID(self._get_attr('jid', ''))
+
+ def set_jid(self, value):
+ self._set_attr('jid', str(value))
+
+ def get_source(self):
+ return JID(self._get_attr('source', ''))
+
+ def set_source(self):
+ self._set_attr('source', str(value))
+
+
+register_stanza_plugin(NoSaveQuery, Item)