From ceaf7fd9893d85157c2a798e71d2cd8a0c0da6b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sun, 20 Jun 2021 20:56:52 +0200 Subject: [PATCH] optimize 'base-directory' initialization and usage apply 'clean_path()' only once --- gallery_dl/util.py | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/gallery_dl/util.py b/gallery_dl/util.py index a4188082..06ade6fa 100644 --- a/gallery_dl/util.py +++ b/gallery_dl/util.py @@ -804,19 +804,6 @@ class PathFormat(): self.path = self.realpath = self.temppath = "" self.delete = self._create_directory = False - basedir = extractor._parentdir - if not basedir: - basedir = 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 - extension_map = config("extension-map") if extension_map is None: extension_map = self.EXTENSION_MAP @@ -837,6 +824,22 @@ class PathFormat(): remove = config("path-remove", "\x00-\x1f\x7f") self.clean_path = self._build_cleanfunc(remove, "") + basedir = extractor._parentdir + if not basedir: + basedir = config("base-directory") + sep = os.sep + if basedir is None: + basedir = "." + sep + "gallery-dl" + sep + elif basedir: + basedir = expand_path(basedir) + altsep = os.altsep + if altsep and altsep in basedir: + basedir = basedir.replace(altsep, sep) + if basedir[-1] != sep: + basedir += sep + basedir = self.clean_path(basedir) + self.basedirectory = basedir + @staticmethod def _build_cleanfunc(chars, repl): if not chars: @@ -885,10 +888,10 @@ class PathFormat(): segments = self.build_directory(kwdict) if segments: - self.directory = directory = self.clean_path( - self.basedirectory + sep.join(segments) + sep) + self.directory = directory = self.basedirectory + self.clean_path( + sep.join(segments) + sep) else: - self.directory = directory = self.clean_path(self.basedirectory) + self.directory = directory = self.basedirectory if WINDOWS: # Enable longer-than-260-character paths on Windows