diff options
author | Lance Stout <lancestout@gmail.com> | 2013-02-19 01:00:04 -0800 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2013-03-29 13:16:18 -0700 |
commit | 3732139fc3f364e6246c637441c9f5fd65c37bfb (patch) | |
tree | c3a91989d9adc45b9749554e5e0eeb5994b49ee3 /sleekxmpp/plugins/xep_0096/stanza.py | |
parent | 0a2737dc77709daa0196340368b7ffbfaf71f641 (diff) | |
download | slixmpp-3732139fc3f364e6246c637441c9f5fd65c37bfb.tar.gz slixmpp-3732139fc3f364e6246c637441c9f5fd65c37bfb.tar.bz2 slixmpp-3732139fc3f364e6246c637441c9f5fd65c37bfb.tar.xz slixmpp-3732139fc3f364e6246c637441c9f5fd65c37bfb.zip |
Save progress on SI file transfer
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) |