summaryrefslogtreecommitdiffstats
path: root/gallery_dl/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/util.py')
-rw-r--r--gallery_dl/util.py44
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")