diff options
author | Lance Stout <lancestout@gmail.com> | 2013-05-11 12:48:47 -0700 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2013-05-11 12:48:47 -0700 |
commit | 2e9ccd0623d253fbb3ddd2e3b8e8908cd349246d (patch) | |
tree | 6918a901d241e36d239ab7afb35e07eafc3227aa /sleekxmpp/plugins/xep_0096/stanza.py | |
parent | 7b49c82210d6b27b18dffe36e6533024b8bee913 (diff) | |
parent | fae39e1ab4e516c7c7b6cef81188359e38fe0531 (diff) | |
download | slixmpp-2e9ccd0623d253fbb3ddd2e3b8e8908cd349246d.tar.gz slixmpp-2e9ccd0623d253fbb3ddd2e3b8e8908cd349246d.tar.bz2 slixmpp-2e9ccd0623d253fbb3ddd2e3b8e8908cd349246d.tar.xz slixmpp-2e9ccd0623d253fbb3ddd2e3b8e8908cd349246d.zip |
Merge branch 'si_file_transfer' into develop
Diffstat (limited to 'sleekxmpp/plugins/xep_0096/stanza.py')
-rw-r--r-- | sleekxmpp/plugins/xep_0096/stanza.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/sleekxmpp/plugins/xep_0096/stanza.py b/sleekxmpp/plugins/xep_0096/stanza.py new file mode 100644 index 00000000..65eb5bc5 --- /dev/null +++ b/sleekxmpp/plugins/xep_0096/stanza.py @@ -0,0 +1,48 @@ +""" + 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. +""" + +import datetime as dt + +from sleekxmpp.xmlstream import ElementBase, register_stanza_plugin +from sleekxmpp.plugins import xep_0082 + + +class File(ElementBase): + name = 'file' + namespace = 'http://jabber.org/protocol/si/profile/file-transfer' + plugin_attrib = 'file' + interfaces = set(['name', 'size', 'date', 'hash', 'desc']) + sub_interfaces = set(['desc']) + + def set_size(self, value): + self._set_attr('size', str(value)) + + def get_date(self): + timestamp = self._get_attr('date') + return xep_0082.parse(timestamp) + + def set_date(self, value): + if isinstance(value, dt.datetime): + value = xep_0082.format_datetime(value) + self._set_attr('date', value) + + +class Range(ElementBase): + name = 'range' + namespace = 'http://jabber.org/protocol/si/profile/file-transfer' + plugin_attrib = 'range' + interfaces = set(['length', 'offset']) + + def set_length(self, value): + self._set_attr('length', str(value)) + + def set_offset(self, value): + self._set_attr('offset', str(value)) + + +register_stanza_plugin(File, Range) |