|
@@ -26,18 +26,41 @@ class ItemObject(FSObject, Item): |
|
|
|
|
|
|
|
|
self.checkUpdate(dom=dom) |
|
|
self.checkUpdate(dom=dom) |
|
|
|
|
|
|
|
|
|
|
|
_attrconv = [ |
|
|
|
|
|
('size', 'size', int), |
|
|
|
|
|
('bitrate', 'bitrate', int), |
|
|
|
|
|
('sampleFrequency', 'sampleFrequency', int), |
|
|
|
|
|
('nrAudioChannels', 'nrAudioChannels', int), |
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
@staticmethod |
|
|
|
|
|
def _addattrib(res, attr, dom, element, fun=lambda x: x): |
|
|
|
|
|
data = dom.getElementsByTagName(element) |
|
|
|
|
|
if data: |
|
|
|
|
|
setattr(res, attr, fun(getElementText(data[0]))) |
|
|
|
|
|
|
|
|
def doUpdate(self, dom=None): |
|
|
def doUpdate(self, dom=None): |
|
|
if dom is None: |
|
|
if dom is None: |
|
|
dom = xml.dom.minidom.parse(open(self.FSpath)) |
|
|
dom = xml.dom.minidom.parse(open(self.FSpath)) |
|
|
obj = dom.getElementsByTagName('Object')[0] |
|
|
obj = dom.getElementsByTagName('Object')[0] |
|
|
self.res = ResourceList() |
|
|
self.res = ResourceList() |
|
|
for i in obj.getElementsByTagName('res'): |
|
|
for i in obj.getElementsByTagName('res'): |
|
|
mt = getElementText(i.getElementsByTagName('mimetype')[0]) |
|
|
|
|
|
r = Resource(getElementText(i.getElementsByTagName( |
|
|
|
|
|
'url')[0]), 'http-get:*:%s:*' % mt) |
|
|
|
|
|
size = i.getElementsByTagName('size') |
|
|
|
|
|
if size: |
|
|
|
|
|
r.size = int(getElementText(size[0])) |
|
|
|
|
|
|
|
|
mtel = i.getElementsByTagName('mimetype') |
|
|
|
|
|
rtpel = i.getElementsByTagName('rtppayloadtype') |
|
|
|
|
|
if mtel: |
|
|
|
|
|
mt = getElementText(mtel[0]) |
|
|
|
|
|
pi = 'http-get:*:%s:*' % mt |
|
|
|
|
|
elif rtpel: |
|
|
|
|
|
pt = getElementText(rtpel[0]) |
|
|
|
|
|
pi = 'rtsp-rtp-udp:*:%s:*' % pt |
|
|
|
|
|
else: |
|
|
|
|
|
print 'missing mimetype or rtppayloadtype element, skipping...' |
|
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
|
|
url = getElementText(i.getElementsByTagName('url')[0]) |
|
|
|
|
|
r = Resource(url, pi) |
|
|
|
|
|
for j in self._attrconv: |
|
|
|
|
|
self._addattrib(r, j[0], i, j[1], *j[2:]) |
|
|
self.res.append(r) |
|
|
self.res.append(r) |
|
|
|
|
|
|
|
|
super(ItemObject, self).doUpdate() |
|
|
super(ItemObject, self).doUpdate() |
|
|