def progressCallback(self, info):
global _DOWNLOAD_CANCEL
if xbmc.abortRequested or _DOWNLOAD_CANCEL:
_DOWNLOAD_CANCEL = False
raise DownloadCanceledException('abortRequested')
if _DOWNLOAD_DURATION:
if time.time() - _DOWNLOAD_START > _DOWNLOAD_DURATION:
raise DownloadCanceledException('duration_reached')
#if not _CALLBACK:
# return
# 'downloaded_bytes': byte_counter,
# 'total_bytes': data_len,
# 'tmpfilename': tmpfilename,
# 'filename': filename,
# 'status': 'downloading',
# 'eta': eta,
# 'speed': speed
sofar = info.get('downloaded_bytes')
total = info.get('total_bytes')
if info.get('filename'):
self._lastDownloadedFilePath = info.get('filename')
pct = ''
pct_val = 0
eta = None
if sofar is not None and total:
pct_val = int((float(sofar) / total) * 100)
pct = ' (%s%%)' % pct_val
elif _DOWNLOAD_DURATION:
sofar = time.time() - _DOWNLOAD_START
eta = _DOWNLOAD_DURATION - sofar
pct_val = int((float(sofar) / _DOWNLOAD_DURATION) * 100)
eta = eta or info.get('eta') or ''
eta_str = ''
if eta:
eta_str = durationToShortText(eta)
eta = ' ETA: ' + eta_str
speed = info.get('speed') or ''
speed_str = ''
if speed:
speed_str = simpleSize(speed) + 's'
speed = ' ' + speed_str
status = '%s%s:' % (info.get('status', '?').title(), pct)
text = CallbackMessage(status + eta + speed, pct_val, eta_str, speed_str, info)
ok = self.showMessage(text)
if not ok:
#util.LOG('Download canceled')
raise DownloadCanceledException()
评论列表
文章目录