diff --git a/docs/configuration.rst b/docs/configuration.rst index e7390913..83972e23 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -212,12 +212,34 @@ Description Specifying a default |Path|_ with ``""`` is required. +extractor.*.parent +------------------ +Type + ``bool`` +Default + ``true`` + ``[chevereto]`` | + ``erome`` | + ``[imagehost]`` + ``false`` + otherwise +Description + Mark an extractor as a `parent` and enable + + * `parent-directory `__ + * `parent-metadata `__ + * `parent-session `__ + * `parent-skip `__ + + for it by default. + + extractor.*.parent-directory ---------------------------- Type ``bool`` Default - ``false`` + `extractor.parent `__ Description Use an extractor's current target directory as base-directory_ for any spawned child extractors. @@ -231,11 +253,7 @@ Type * ``bool`` * ``string`` Default - ``true`` - ``[chevereto]`` | - ``[imagehost]`` - ``false`` - otherwise + `extractor.parent `__ Description Forward a parent's metadata to its child extractors. @@ -256,11 +274,7 @@ extractor.*.parent-session Type ``bool`` Default - ``true`` - ``[chevereto]`` | - ``[imagehost]`` - ``false`` - otherwise + `extractor.parent `__ Description Share a parent's `session `__ @@ -275,7 +289,7 @@ extractor.*.parent-skip Type ``bool`` Default - ``false`` + `extractor.parent `__ Description Share number of skipped downloads between parent and child extractors. diff --git a/docs/gallery-dl.conf b/docs/gallery-dl.conf index 18b98167..b2302aa9 100644 --- a/docs/gallery-dl.conf +++ b/docs/gallery-dl.conf @@ -58,6 +58,7 @@ "keywords-eval" : false, "keywords-global" : {}, + "parent" : false, "parent-directory": false, "parent-metadata" : false, "parent-session" : false, @@ -307,6 +308,7 @@ "erome": { "user": { + "parent" : true, "reposts": false } }, @@ -1023,9 +1025,8 @@ "chevereto": { - "parent-metadata": true, - "parent-session" : true, - "password" : "" + "parent" : true, + "password": "" }, "Danbooru": @@ -1099,8 +1100,7 @@ "imagehost": { - "parent-metadata": true, - "parent-session" : true + "parent": true }, "mastodon": diff --git a/gallery_dl/job.py b/gallery_dl/job.py index 3337bf07..16c5c5e0 100644 --- a/gallery_dl/job.py +++ b/gallery_dl/job.py @@ -440,14 +440,15 @@ class DownloadJob(Job): job = self.__class__(extr, self) pfmt = self.pathfmt pextr = self.extractor + parent = pextr.config("parent", pextr.parent) - if pfmt and pextr.config("parent-directory"): + if pfmt and pextr.config("parent-directory", parent): extr._parentdir = pfmt.directory else: extr._parentdir = pextr._parentdir if pmeta := pextr.config2( - "parent-metadata", "metadata-parent", pextr.parent): + "parent-metadata", "metadata-parent", parent): if isinstance(pmeta, str): data = self.kwdict.copy() if kwdict: @@ -459,12 +460,12 @@ class DownloadJob(Job): if kwdict: job.kwdict.update(kwdict) - if pextr.config("parent-session", pextr.parent): + if pextr.config("parent-session", parent): extr.session = pextr.session while True: try: - if pextr.config("parent-skip"): + if pextr.config("parent-skip", parent): job._skipcnt = self._skipcnt status = job.run() self._skipcnt = job._skipcnt