diff options
| author | 2020-11-13 19:17:03 -0500 | |
|---|---|---|
| committer | 2020-11-13 19:17:03 -0500 | |
| commit | 209a3c800871cd68edd2bc7ae661a24ecd496d2d (patch) | |
| tree | cf81c47ab57540b58292295c7d5641e9d2668291 /gallery_dl/util.py | |
| parent | 5dc7d6f5902ddaee5223d041d5c10060f0c72430 (diff) | |
New upstream version 1.15.3.upstream/1.15.3
Diffstat (limited to 'gallery_dl/util.py')
| -rw-r--r-- | gallery_dl/util.py | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/gallery_dl/util.py b/gallery_dl/util.py index d85d2b3..a334b6e 100644 --- a/gallery_dl/util.py +++ b/gallery_dl/util.py @@ -48,12 +48,22 @@ def bdecode(data, alphabet="0123456789"): def advance(iterable, num): - """"Advance the iterable by 'num' steps""" + """"Advance 'iterable' by 'num' steps""" iterator = iter(iterable) next(itertools.islice(iterator, num, num), None) return iterator +def unique(iterable): + """Yield unique elements from 'iterable' while preserving order""" + seen = set() + add = seen.add + for element in iterable: + if element not in seen: + add(element) + yield element + + def raises(cls): """Returns a function that raises 'cls' as exception""" def wrap(*args): @@ -713,6 +723,12 @@ class PathFormat(): directory_fmt = extractor.config("directory", extractor.directory_fmt) kwdefault = extractor.config("keywords-default") + extension_map = extractor.config("extension-map") + if extension_map is None: + # TODO: better default value in 1.16.0 + extension_map = {} + self.extension_map = extension_map.get + try: self.filename_formatter = Formatter( filename_fmt, kwdefault).format_map @@ -840,7 +856,9 @@ class PathFormat(): """Set general filename data""" self.kwdict = kwdict self.temppath = self.prefix = "" - self.extension = kwdict["extension"] + + ext = kwdict["extension"] + kwdict["extension"] = self.extension = self.extension_map(ext, ext) if self.extension: self.build_path() @@ -849,6 +867,7 @@ class PathFormat(): def set_extension(self, extension, real=True): """Set filename extension""" + extension = self.extension_map(extension, extension) if real: self.extension = extension self.kwdict["extension"] = self.prefix + extension |
