diff options
| author | 2023-04-30 16:45:27 -0400 | |
|---|---|---|
| committer | 2023-04-30 16:45:27 -0400 | |
| commit | a3c3a8e7b07af486256f2542527adcb8a061e68c (patch) | |
| tree | 7a59346e5f8ec51ecad5bb97775028899301ba38 /gallery_dl/postprocessor | |
| parent | 0e0ce75a1b0bfacaf5c3fae518b4640b73c4a340 (diff) | |
| parent | 33d4eae5a6df8aaf6757f52ae25f514ff1211c62 (diff) | |
Update upstream source from tag 'upstream/1.25.3'
Update to upstream version '1.25.3'
with Debian dir aad7ec0dd03386cea26bd84d04c62b87315ed4cc
Diffstat (limited to 'gallery_dl/postprocessor')
| -rw-r--r-- | gallery_dl/postprocessor/metadata.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/gallery_dl/postprocessor/metadata.py b/gallery_dl/postprocessor/metadata.py index 714f4fe..5004bed 100644 --- a/gallery_dl/postprocessor/metadata.py +++ b/gallery_dl/postprocessor/metadata.py @@ -124,10 +124,8 @@ class MetadataPP(PostProcessor): for key, func in self.fields.items(): obj = kwdict try: - while "[" in key: - name, _, key = key.partition("[") - obj = obj[name] - key = key.rstrip("]") + if "[" in key: + obj, key = _traverse(obj, key) obj[key] = func(kwdict) except Exception: pass @@ -137,10 +135,8 @@ class MetadataPP(PostProcessor): for key in self.fields: obj = kwdict try: - while "[" in key: - name, _, key = key.partition("[") - obj = obj[name] - key = key.rstrip("]") + if "[" in key: + obj, key = _traverse(obj, key) del obj[key] except Exception: pass @@ -214,4 +210,15 @@ class MetadataPP(PostProcessor): ) +def _traverse(obj, key): + name, _, key = key.partition("[") + obj = obj[name] + + while "[" in key: + name, _, key = key.partition("[") + obj = obj[name.strip("\"']")] + + return obj, key.strip("\"']") + + __postprocessor__ = MetadataPP |
