diff options
| author | 2021-08-04 02:14:44 -0400 | |
|---|---|---|
| committer | 2021-08-04 02:14:44 -0400 | |
| commit | 873d9a628e9412a79bdc64cd962470749de3425b (patch) | |
| tree | 8cd421ef79a9fa784147fa888543216f0872357b /gallery_dl/job.py | |
| parent | 32de2b06db501c7de81678bce8e3e0c3e63d340c (diff) | |
New upstream version 1.18.2.upstream/1.18.2
Diffstat (limited to 'gallery_dl/job.py')
| -rw-r--r-- | gallery_dl/job.py | 40 |
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) |
