diff --git a/docs/configuration.rst b/docs/configuration.rst index a5047dc5..cecdb1f8 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -561,6 +561,20 @@ Description with a ``metadata`` post processor, etc. +extractor.*.path-metadata +------------------------- +Type + ``string`` +Default + ``null`` +Description + Insert a reference to the current `PathFormat `__ + data structure into metadata dictionaries as the given name. + + For example, setting this option to ``"gdl_path"`` would make it possible + to access the current file's filename as ``"[gdl_path.filename}"``. + + extractor.*.category-transfer ----------------------------- Type diff --git a/gallery_dl/job.py b/gallery_dl/job.py index 9636bef1..7b22b1df 100644 --- a/gallery_dl/job.py +++ b/gallery_dl/job.py @@ -35,10 +35,13 @@ class Job(): self.status = 0 self.url_key = extr.config("url-metadata") + path_key = extr.config("path-metadata") + path_proxy = output.PathfmtProxy(self) + self._logger_extra = { "job" : self, "extractor": extr, - "path" : output.PathfmtProxy(self), + "path" : path_proxy, "keywords" : output.KwdictProxy(self), } extr.log = self._wrap_logger(extr.log) @@ -58,6 +61,8 @@ class Job(): kwdict = extr.config("keywords") if kwdict: self.kwdict.update(kwdict) + if path_key: + self.kwdict[path_key] = path_proxy # predicates self.pred_url = self._prepare_predicates("image", True) diff --git a/gallery_dl/output.py b/gallery_dl/output.py index e7c66cf2..3017f857 100644 --- a/gallery_dl/output.py +++ b/gallery_dl/output.py @@ -73,6 +73,12 @@ class PathfmtProxy(): pathfmt = object.__getattribute__(self, "job").pathfmt return pathfmt.__dict__.get(name) if pathfmt else None + def __str__(self): + pathfmt = object.__getattribute__(self, "job").pathfmt + if pathfmt: + return pathfmt.path or pathfmt.directory + return "" + class KwdictProxy(): __slots__ = ("job",)