mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[postprocessor/common:postprocessor/ffmpeg] Generalize utime
This commit is contained in:
		| @@ -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 @@ class PostProcessor(object): | |||||||
|         """ |         """ | ||||||
|         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 | ||||||
|   | |||||||
| @@ -146,10 +146,7 @@ class FFmpegPostProcessor(PostProcessor): | |||||||
|             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 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor): | |||||||
|  |  | ||||||
|         # 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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user