diff options
author | Lance Stout <lancestout@gmail.com> | 2013-01-24 23:05:05 -0800 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2013-01-24 23:05:05 -0800 |
commit | a1b33da9ca7eb0d93c02b842935386d9286d82be (patch) | |
tree | f603d724710c76afb434fd10607bf360634a9f5c /sleekxmpp/plugins/google/auth/stanza.py | |
parent | 1741059cf629960fbbe0c135fa530a786ec9b72e (diff) | |
download | slixmpp-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/auth/stanza.py')
-rw-r--r-- | sleekxmpp/plugins/google/auth/stanza.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/sleekxmpp/plugins/google/auth/stanza.py b/sleekxmpp/plugins/google/auth/stanza.py new file mode 100644 index 00000000..49c5cba7 --- /dev/null +++ b/sleekxmpp/plugins/google/auth/stanza.py @@ -0,0 +1,49 @@ +""" + 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.xmlstream import ElementBase, ET + + +class GoogleAuth(ElementBase): + name = 'auth' + namespace = 'http://www.google.com/talk/protocol/auth' + plugin_attrib = 'google' + interfaces = set(['client_uses_full_bind_result', 'service']) + + discovery_attr= '{%s}client-uses-full-bind-result' % namespace + service_attr= '{%s}service' % namespace + + def setup(self, xml): + """Don't create XML for the plugin.""" + self.xml = ET.Element('') + print('setting up google extension') + + def get_client_uses_full_bind_result(self): + return self.parent()._get_attr(self.disovery_attr) == 'true' + + def set_client_uses_full_bind_result(self, value): + print('>>>', value) + if value in (True, 'true'): + self.parent()._set_attr(self.discovery_attr, 'true') + else: + self.parent()._del_attr(self.discovery_attr) + + def del_client_uses_full_bind_result(self): + self.parent()._del_attr(self.discovery_attr) + + def get_service(self): + return self.parent()._get_attr(self.service_attr, '') + + def set_service(self, value): + if value: + self.parent()._set_attr(self.service_attr, value) + else: + self.parent()._del_attr(self.service_attr) + + def del_service(self): + self.parent()._del_attr(self.service_attr) |