|
|
@ -97,12 +97,15 @@ class FragmentFD(FileDownloader):
|
|
|
|
|
|
|
|
|
|
|
|
def _download_fragment(self, ctx, frag_url, info_dict, headers=None):
|
|
|
|
def _download_fragment(self, ctx, frag_url, info_dict, headers=None):
|
|
|
|
fragment_filename = '%s-Frag%d' % (ctx['tmpfilename'], ctx['fragment_index'])
|
|
|
|
fragment_filename = '%s-Frag%d' % (ctx['tmpfilename'], ctx['fragment_index'])
|
|
|
|
success = ctx['dl'].download(fragment_filename, {
|
|
|
|
fragment_info_dict = {
|
|
|
|
'url': frag_url,
|
|
|
|
'url': frag_url,
|
|
|
|
'http_headers': headers or info_dict.get('http_headers'),
|
|
|
|
'http_headers': headers or info_dict.get('http_headers'),
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
success = ctx['dl'].download(fragment_filename, fragment_info_dict)
|
|
|
|
if not success:
|
|
|
|
if not success:
|
|
|
|
return False, None
|
|
|
|
return False, None
|
|
|
|
|
|
|
|
if fragment_info_dict.get('filetime'):
|
|
|
|
|
|
|
|
ctx['fragment_filetime'] = fragment_info_dict.get('filetime')
|
|
|
|
down, frag_sanitized = sanitize_open(fragment_filename, 'rb')
|
|
|
|
down, frag_sanitized = sanitize_open(fragment_filename, 'rb')
|
|
|
|
ctx['fragment_filename_sanitized'] = frag_sanitized
|
|
|
|
ctx['fragment_filename_sanitized'] = frag_sanitized
|
|
|
|
frag_content = down.read()
|
|
|
|
frag_content = down.read()
|
|
|
@ -258,6 +261,13 @@ class FragmentFD(FileDownloader):
|
|
|
|
downloaded_bytes = ctx['complete_frags_downloaded_bytes']
|
|
|
|
downloaded_bytes = ctx['complete_frags_downloaded_bytes']
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
self.try_rename(ctx['tmpfilename'], ctx['filename'])
|
|
|
|
self.try_rename(ctx['tmpfilename'], ctx['filename'])
|
|
|
|
|
|
|
|
if self.params.get('updatetime', True):
|
|
|
|
|
|
|
|
filetime = ctx.get('fragment_filetime')
|
|
|
|
|
|
|
|
if filetime:
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
os.utime(ctx['filename'], (time.time(), filetime))
|
|
|
|
|
|
|
|
except Exception:
|
|
|
|
|
|
|
|
pass
|
|
|
|
downloaded_bytes = os.path.getsize(encodeFilename(ctx['filename']))
|
|
|
|
downloaded_bytes = os.path.getsize(encodeFilename(ctx['filename']))
|
|
|
|
|
|
|
|
|
|
|
|
self._hook_progress({
|
|
|
|
self._hook_progress({
|
|
|
|