[job] enable all 'parent-…' options for parent extractors by default
- parent-directory - parent-metadata - parent-session - parent-skip - add general 'parent' option
This commit is contained in:
@@ -212,12 +212,34 @@ Description
|
|||||||
Specifying a default |Path|_ with ``""`` is required.
|
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 <extractor.*.parent-directory_>`__
|
||||||
|
* `parent-metadata <extractor.*.parent-metadata_>`__
|
||||||
|
* `parent-session <extractor.*.parent-session_>`__
|
||||||
|
* `parent-skip <extractor.*.parent-skip_>`__
|
||||||
|
|
||||||
|
for it by default.
|
||||||
|
|
||||||
|
|
||||||
extractor.*.parent-directory
|
extractor.*.parent-directory
|
||||||
----------------------------
|
----------------------------
|
||||||
Type
|
Type
|
||||||
``bool``
|
``bool``
|
||||||
Default
|
Default
|
||||||
``false``
|
`extractor.parent <extractor.*.parent_>`__
|
||||||
Description
|
Description
|
||||||
Use an extractor's current target directory as
|
Use an extractor's current target directory as
|
||||||
base-directory_ for any spawned child extractors.
|
base-directory_ for any spawned child extractors.
|
||||||
@@ -231,11 +253,7 @@ Type
|
|||||||
* ``bool``
|
* ``bool``
|
||||||
* ``string``
|
* ``string``
|
||||||
Default
|
Default
|
||||||
``true``
|
`extractor.parent <extractor.*.parent_>`__
|
||||||
``[chevereto]`` |
|
|
||||||
``[imagehost]``
|
|
||||||
``false``
|
|
||||||
otherwise
|
|
||||||
Description
|
Description
|
||||||
Forward a parent's metadata to its child extractors.
|
Forward a parent's metadata to its child extractors.
|
||||||
|
|
||||||
@@ -256,11 +274,7 @@ extractor.*.parent-session
|
|||||||
Type
|
Type
|
||||||
``bool``
|
``bool``
|
||||||
Default
|
Default
|
||||||
``true``
|
`extractor.parent <extractor.*.parent_>`__
|
||||||
``[chevereto]`` |
|
|
||||||
``[imagehost]``
|
|
||||||
``false``
|
|
||||||
otherwise
|
|
||||||
Description
|
Description
|
||||||
Share a parent's
|
Share a parent's
|
||||||
`session <https://requests.readthedocs.io/en/latest/user/advanced/#session-objects>`__
|
`session <https://requests.readthedocs.io/en/latest/user/advanced/#session-objects>`__
|
||||||
@@ -275,7 +289,7 @@ extractor.*.parent-skip
|
|||||||
Type
|
Type
|
||||||
``bool``
|
``bool``
|
||||||
Default
|
Default
|
||||||
``false``
|
`extractor.parent <extractor.*.parent_>`__
|
||||||
Description
|
Description
|
||||||
Share number of skipped downloads between parent and child extractors.
|
Share number of skipped downloads between parent and child extractors.
|
||||||
|
|
||||||
|
|||||||
@@ -58,6 +58,7 @@
|
|||||||
"keywords-eval" : false,
|
"keywords-eval" : false,
|
||||||
"keywords-global" : {},
|
"keywords-global" : {},
|
||||||
|
|
||||||
|
"parent" : false,
|
||||||
"parent-directory": false,
|
"parent-directory": false,
|
||||||
"parent-metadata" : false,
|
"parent-metadata" : false,
|
||||||
"parent-session" : false,
|
"parent-session" : false,
|
||||||
@@ -307,6 +308,7 @@
|
|||||||
"erome":
|
"erome":
|
||||||
{
|
{
|
||||||
"user": {
|
"user": {
|
||||||
|
"parent" : true,
|
||||||
"reposts": false
|
"reposts": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1023,9 +1025,8 @@
|
|||||||
|
|
||||||
"chevereto":
|
"chevereto":
|
||||||
{
|
{
|
||||||
"parent-metadata": true,
|
"parent" : true,
|
||||||
"parent-session" : true,
|
"password": ""
|
||||||
"password" : ""
|
|
||||||
},
|
},
|
||||||
|
|
||||||
"Danbooru":
|
"Danbooru":
|
||||||
@@ -1099,8 +1100,7 @@
|
|||||||
|
|
||||||
"imagehost":
|
"imagehost":
|
||||||
{
|
{
|
||||||
"parent-metadata": true,
|
"parent": true
|
||||||
"parent-session" : true
|
|
||||||
},
|
},
|
||||||
|
|
||||||
"mastodon":
|
"mastodon":
|
||||||
|
|||||||
@@ -440,14 +440,15 @@ class DownloadJob(Job):
|
|||||||
job = self.__class__(extr, self)
|
job = self.__class__(extr, self)
|
||||||
pfmt = self.pathfmt
|
pfmt = self.pathfmt
|
||||||
pextr = self.extractor
|
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
|
extr._parentdir = pfmt.directory
|
||||||
else:
|
else:
|
||||||
extr._parentdir = pextr._parentdir
|
extr._parentdir = pextr._parentdir
|
||||||
|
|
||||||
if pmeta := pextr.config2(
|
if pmeta := pextr.config2(
|
||||||
"parent-metadata", "metadata-parent", pextr.parent):
|
"parent-metadata", "metadata-parent", parent):
|
||||||
if isinstance(pmeta, str):
|
if isinstance(pmeta, str):
|
||||||
data = self.kwdict.copy()
|
data = self.kwdict.copy()
|
||||||
if kwdict:
|
if kwdict:
|
||||||
@@ -459,12 +460,12 @@ class DownloadJob(Job):
|
|||||||
if kwdict:
|
if kwdict:
|
||||||
job.kwdict.update(kwdict)
|
job.kwdict.update(kwdict)
|
||||||
|
|
||||||
if pextr.config("parent-session", pextr.parent):
|
if pextr.config("parent-session", parent):
|
||||||
extr.session = pextr.session
|
extr.session = pextr.session
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
if pextr.config("parent-skip"):
|
if pextr.config("parent-skip", parent):
|
||||||
job._skipcnt = self._skipcnt
|
job._skipcnt = self._skipcnt
|
||||||
status = job.run()
|
status = job.run()
|
||||||
self._skipcnt = job._skipcnt
|
self._skipcnt = job._skipcnt
|
||||||
|
|||||||
Reference in New Issue
Block a user