2 Slixmpp: The Slick XMPP Library
3 Copyright (C) 2013 Nathanael C. Fritz, Lance J.T. Stout
4 This file is part of Slixmpp.
6 See the file LICENSE for copying permission.
11 from slixmpp
.xmlstream
import ElementBase
, register_stanza_plugin
12 from slixmpp
.plugins
import xep_0082
15 class File(ElementBase
):
17 namespace
= 'http://jabber.org/protocol/si/profile/file-transfer'
18 plugin_attrib
= 'file'
19 interfaces
= set(['name', 'size', 'date', 'hash', 'desc'])
20 sub_interfaces
= set(['desc'])
22 def set_size(self
, value
):
23 self
._set
_attr
('size', str(value
))
26 timestamp
= self
._get
_attr
('date')
27 return xep_0082
.parse(timestamp
)
29 def set_date(self
, value
):
30 if isinstance(value
, dt
.datetime
):
31 value
= xep_0082
.format_datetime(value
)
32 self
._set
_attr
('date', value
)
35 class Range(ElementBase
):
37 namespace
= 'http://jabber.org/protocol/si/profile/file-transfer'
38 plugin_attrib
= 'range'
39 interfaces
= set(['length', 'offset'])
41 def set_length(self
, value
):
42 self
._set
_attr
('length', str(value
))
44 def set_offset(self
, value
):
45 self
._set
_attr
('offset', str(value
))
48 register_stanza_plugin(File
, Range
)