[postprocessor/common:postprocessor/ffmpeg] Generalize utime

This commit is contained in:
Sergey M․ 2015-04-08 21:40:31 +06:00
parent bca788ab1d
commit dd29eb7f81
2 changed files with 16 additions and 9 deletions

View File

@ -1,6 +1,11 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from ..utils import PostProcessingError import os
from ..utils import (
PostProcessingError,
encodeFilename,
)
class PostProcessor(object): class PostProcessor(object):
@ -46,6 +51,12 @@ def run(self, information):
""" """
return None, information # by default, keep file and do nothing return None, information # by default, keep file and do nothing
def try_utime(self, path, atime, mtime, errnote='Cannot update utime of file'):
try:
os.utime(encodeFilename(path), (atime, mtime))
except Exception:
self._downloader.report_warning(errnote)
class AudioConversionError(PostProcessingError): class AudioConversionError(PostProcessingError):
pass pass

View File

@ -146,10 +146,7 @@ def run_ffmpeg_multiple_files(self, input_paths, out_path, opts):
stderr = stderr.decode('utf-8', 'replace') stderr = stderr.decode('utf-8', 'replace')
msg = stderr.strip().split('\n')[-1] msg = stderr.strip().split('\n')[-1]
raise FFmpegPostProcessorError(msg) raise FFmpegPostProcessorError(msg)
try: self.try_utime(out_path, oldest_mtime, oldest_mtime)
os.utime(encodeFilename(out_path), (oldest_mtime, oldest_mtime))
except Exception:
self._downloader.report_warning('Cannot update utime of file')
if self._deletetempfiles: if self._deletetempfiles:
for ipath in input_paths: for ipath in input_paths:
@ -284,10 +281,9 @@ def run(self, information):
# Try to update the date time for extracted audio file. # Try to update the date time for extracted audio file.
if information.get('filetime') is not None: if information.get('filetime') is not None:
try: self.try_utime(
os.utime(encodeFilename(new_path), (time.time(), information['filetime'])) new_path, time.time(), information['filetime'],
except Exception: errnote='Cannot update utime of audio file')
self._downloader.report_warning('Cannot update utime of audio file')
information['filepath'] = new_path information['filepath'] = new_path
return self._nopostoverwrites, information return self._nopostoverwrites, information