aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/postprocessor
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2023-04-30 16:45:27 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2023-04-30 16:45:27 -0400
commita3c3a8e7b07af486256f2542527adcb8a061e68c (patch)
tree7a59346e5f8ec51ecad5bb97775028899301ba38 /gallery_dl/postprocessor
parent0e0ce75a1b0bfacaf5c3fae518b4640b73c4a340 (diff)
parent33d4eae5a6df8aaf6757f52ae25f514ff1211c62 (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.py23
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