|
@@ -97,12 +97,15 @@ class FragmentFD(FileDownloader):
|
|
|
|
|
|
def _download_fragment(self, ctx, frag_url, info_dict, headers=None):
|
|
|
fragment_filename = '%s-Frag%d' % (ctx['tmpfilename'], ctx['fragment_index'])
|
|
|
- success = ctx['dl'].download(fragment_filename, {
|
|
|
+ fragment_info_dict = {
|
|
|
'url': frag_url,
|
|
|
'http_headers': headers or info_dict.get('http_headers'),
|
|
|
- })
|
|
|
+ }
|
|
|
+ success = ctx['dl'].download(fragment_filename, fragment_info_dict)
|
|
|
if not success:
|
|
|
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')
|
|
|
ctx['fragment_filename_sanitized'] = frag_sanitized
|
|
|
frag_content = down.read()
|
|
@@ -258,6 +261,13 @@ class FragmentFD(FileDownloader):
|
|
|
downloaded_bytes = ctx['complete_frags_downloaded_bytes']
|
|
|
else:
|
|
|
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']))
|
|
|
|
|
|
self._hook_progress({
|