| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- from __future__ import unicode_literals
 
- import os
 
- from ..utils import (
 
-     PostProcessingError,
 
-     cli_configuration_args,
 
-     encodeFilename,
 
- )
 
- class PostProcessor(object):
 
-     """Post Processor class.
 
-     PostProcessor objects can be added to downloaders with their
 
-     add_post_processor() method. When the downloader has finished a
 
-     successful download, it will take its internal chain of PostProcessors
 
-     and start calling the run() method on each one of them, first with
 
-     an initial argument and then with the returned value of the previous
 
-     PostProcessor.
 
-     The chain will be stopped if one of them ever returns None or the end
 
-     of the chain is reached.
 
-     PostProcessor objects follow a "mutual registration" process similar
 
-     to InfoExtractor objects.
 
-     Optionally PostProcessor can use a list of additional command-line arguments
 
-     with self._configuration_args.
 
-     """
 
-     _downloader = None
 
-     def __init__(self, downloader=None):
 
-         self._downloader = downloader
 
-     def set_downloader(self, downloader):
 
-         """Sets the downloader for this PP."""
 
-         self._downloader = downloader
 
-     def run(self, information):
 
-         """Run the PostProcessor.
 
-         The "information" argument is a dictionary like the ones
 
-         composed by InfoExtractors. The only difference is that this
 
-         one has an extra field called "filepath" that points to the
 
-         downloaded file.
 
-         This method returns a tuple, the first element is a list of the files
 
-         that can be deleted, and the second of which is the updated
 
-         information.
 
-         In addition, this method may raise a PostProcessingError
 
-         exception if post processing fails.
 
-         """
 
-         return [], 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)
 
-     def _configuration_args(self, default=[]):
 
-         return cli_configuration_args(self._downloader.params, 'postprocessor_args', default)
 
- class AudioConversionError(PostProcessingError):
 
-     pass
 
 
  |