diff options
Diffstat (limited to 'gallery_dl/util.py')
| -rw-r--r-- | gallery_dl/util.py | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/gallery_dl/util.py b/gallery_dl/util.py index 2161b9d..2466adf 100644 --- a/gallery_dl/util.py +++ b/gallery_dl/util.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright 2017-2020 Mike Fährmann +# Copyright 2017-2021 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 @@ -65,6 +65,15 @@ def unique(iterable): yield element +def unique_sequence(iterable): + """Yield sequentially unique elements from 'iterable'""" + last = None + for element in iterable: + if element != last: + last = element + yield element + + def raises(cls): """Returns a function that raises 'cls' as exception""" def wrap(*args): @@ -731,21 +740,25 @@ class PathFormat(): } def __init__(self, extractor): - filename_fmt = extractor.config("filename", extractor.filename_fmt) - directory_fmt = extractor.config("directory", extractor.directory_fmt) - kwdefault = extractor.config("keywords-default") + filename_fmt = extractor.config("filename") + if filename_fmt is None: + filename_fmt = extractor.filename_fmt + + directory_fmt = extractor.config("directory") + if directory_fmt is None: + directory_fmt = extractor.directory_fmt extension_map = extractor.config("extension-map") if extension_map is None: extension_map = self.EXTENSION_MAP self.extension_map = extension_map.get + kwdefault = extractor.config("keywords-default") try: self.filename_formatter = Formatter( filename_fmt, kwdefault).format_map except Exception as exc: raise exception.FilenameFormatError(exc) - try: self.directory_formatters = [ Formatter(dirfmt, kwdefault).format_map @@ -754,20 +767,23 @@ class PathFormat(): except Exception as exc: raise exception.DirectoryFormatError(exc) - self.directory = self.realdirectory = "" - self.filename = self.extension = self.prefix = "" - self.path = self.realpath = self.temppath = "" self.kwdict = {} + self.directory = self.realdirectory = \ + self.filename = self.extension = self.prefix = \ + self.path = self.realpath = self.temppath = "" self.delete = self._create_directory = False basedir = extractor._parentdir if not basedir: - basedir = expand_path( - extractor.config("base-directory", (".", "gallery-dl"))) - if os.altsep and os.altsep in basedir: - basedir = basedir.replace(os.altsep, os.sep) - if basedir[-1] != os.sep: - basedir += os.sep + basedir = extractor.config("base-directory") + if basedir is None: + basedir = "." + os.sep + "gallery-dl" + os.sep + elif basedir: + basedir = expand_path(basedir) + if os.altsep and os.altsep in basedir: + basedir = basedir.replace(os.altsep, os.sep) + if basedir[-1] != os.sep: + basedir += os.sep self.basedirectory = basedir restrict = extractor.config("path-restrict", "auto") |
