aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/job.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2021-08-04 02:14:44 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2021-08-04 02:14:44 -0400
commit873d9a628e9412a79bdc64cd962470749de3425b (patch)
tree8cd421ef79a9fa784147fa888543216f0872357b /gallery_dl/job.py
parent32de2b06db501c7de81678bce8e3e0c3e63d340c (diff)
New upstream version 1.18.2.upstream/1.18.2
Diffstat (limited to 'gallery_dl/job.py')
-rw-r--r--gallery_dl/job.py40
1 files changed, 26 insertions, 14 deletions
diff --git a/gallery_dl/job.py b/gallery_dl/job.py
index dddc03a..953d9c3 100644
--- a/gallery_dl/job.py
+++ b/gallery_dl/job.py
@@ -33,6 +33,7 @@ class Job():
self.pathfmt = None
self.kwdict = {}
self.status = 0
+ self.url_key = extr.config("url-metadata")
self._logger_extra = {
"job" : self,
@@ -57,7 +58,7 @@ class Job():
extr.session.adapters = pextr.session.adapters
# user-supplied metadata
- kwdict = self.extractor.config("keywords")
+ kwdict = extr.config("keywords")
if kwdict:
self.kwdict.update(kwdict)
@@ -106,19 +107,23 @@ class Job():
def dispatch(self, msg):
"""Call the appropriate message handler"""
if msg[0] == Message.Url:
- _, url, kwds = msg
- if self.pred_url(url, kwds):
- self.update_kwdict(kwds)
- self.handle_url(url, kwds)
+ _, url, kwdict = msg
+ if self.url_key:
+ kwdict[self.url_key] = url
+ if self.pred_url(url, kwdict):
+ self.update_kwdict(kwdict)
+ self.handle_url(url, kwdict)
elif msg[0] == Message.Directory:
self.update_kwdict(msg[1])
self.handle_directory(msg[1])
elif msg[0] == Message.Queue:
- _, url, kwds = msg
- if self.pred_queue(url, kwds):
- self.handle_queue(url, kwds)
+ _, url, kwdict = msg
+ if self.url_key:
+ kwdict[self.url_key] = url
+ if self.pred_queue(url, kwdict):
+ self.handle_queue(url, kwdict)
elif msg[0] == Message.Version:
if msg[1] != 1:
@@ -302,11 +307,18 @@ class DownloadJob(Job):
else:
extr._parentdir = pextr._parentdir
- if pextr.config("parent-metadata"):
- if self.kwdict:
- job.kwdict.update(self.kwdict)
- if kwdict:
- job.kwdict.update(kwdict)
+ pmeta = pextr.config("parent-metadata")
+ if pmeta:
+ if isinstance(pmeta, str):
+ data = self.kwdict.copy()
+ if kwdict:
+ data.update(kwdict)
+ job.kwdict[pmeta] = data
+ else:
+ if self.kwdict:
+ job.kwdict.update(self.kwdict)
+ if kwdict:
+ job.kwdict.update(kwdict)
if pextr.config("parent-skip"):
job._skipcnt = self._skipcnt
@@ -626,7 +638,7 @@ class UrlJob(Job):
extr = extractor.find(url)
if extr:
- self.status |= self.__class__(extr, self).run()
+ self.status |= self.__class__(extr, self, self.depth + 1).run()
else:
self._write_unsupported(url)