1
0
mirror of https://github.com/mikf/gallery-dl.git synced 2024-11-22 02:32:33 +01:00

implement 'path-metadata' option (#2734)

This commit is contained in:
Mike Fährmann 2022-07-30 12:31:45 +02:00
parent 81a37d21d3
commit 7d1a95ada6
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88
3 changed files with 26 additions and 1 deletions

View File

@ -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 <https://github.com/mikf/gallery-dl/blob/v1.22.4/gallery_dl/path.py#L20>`__
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

View File

@ -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)

View File

@ -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",)