[postprocessor/common:postprocessor/ffmpeg] Generalize utime

totalwebcasting
Sergey M․ 9 years ago
parent bca788ab1d
commit dd29eb7f81

@ -1,6 +1,11 @@
from __future__ import unicode_literals
from ..utils import PostProcessingError
import os
from ..utils import (
PostProcessingError,
encodeFilename,
)
class PostProcessor(object):
@ -46,6 +51,12 @@ class PostProcessor(object):
"""
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):
pass

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

Loading…
Cancel
Save