diff options
| author | 2023-03-13 02:07:49 -0400 | |
|---|---|---|
| committer | 2023-03-13 02:07:49 -0400 | |
| commit | 10987f08f8b6c510ba64f4b42d95ba67eec6e5b0 (patch) | |
| tree | 1af82cad9ac859a70cafc976a980280b939cfcc7 /gallery_dl/postprocessor/common.py | |
| parent | 919f8ba16a7b82ba1099bd25b2c61c7881a05aa2 (diff) | |
New upstream version 1.25.0.upstream/1.25.0
Diffstat (limited to 'gallery_dl/postprocessor/common.py')
| -rw-r--r-- | gallery_dl/postprocessor/common.py | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/gallery_dl/postprocessor/common.py b/gallery_dl/postprocessor/common.py index ef211e6..c28d060 100644 --- a/gallery_dl/postprocessor/common.py +++ b/gallery_dl/postprocessor/common.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright 2018-2020 Mike Fährmann +# Copyright 2018-2023 Mike Fährmann # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as @@ -8,13 +8,42 @@ """Common classes and constants used by postprocessor modules.""" +from .. import util, formatter + class PostProcessor(): """Base class for postprocessors""" def __init__(self, job): - name = self.__class__.__name__[:-2].lower() - self.log = job.get_logger("postprocessor." + name) + self.name = self.__class__.__name__[:-2].lower() + self.log = job.get_logger("postprocessor." + self.name) def __repr__(self): return self.__class__.__name__ + + def _init_archive(self, job, options, prefix=None): + archive = options.get("archive") + if archive: + extr = job.extractor + archive = util.expand_path(archive) + if not prefix: + prefix = "_" + self.name.upper() + "_" + archive_format = ( + options.get("archive-prefix", extr.category) + + options.get("archive-format", prefix + extr.archive_fmt)) + try: + if "{" in archive: + archive = formatter.parse(archive).format_map( + job.pathfmt.kwdict) + self.archive = util.DownloadArchive( + archive, archive_format, + options.get("archive-pragma"), + "_archive_" + self.name) + except Exception as exc: + self.log.warning( + "Failed to open %s archive at '%s' ('%s: %s')", + self.name, archive, exc.__class__.__name__, exc) + else: + self.log.debug("Using %s archive '%s'", self.name, archive) + else: + self.archive = None |
