|
|
@ -103,10 +103,10 @@ class MetadataPP(PostProcessor):
|
|
|
|
job.register_hooks({event: self.run for event in events}, options)
|
|
|
|
job.register_hooks({event: self.run for event in events}, options)
|
|
|
|
|
|
|
|
|
|
|
|
self._init_archive(job, options, "_MD_")
|
|
|
|
self._init_archive(job, options, "_MD_")
|
|
|
|
|
|
|
|
self.filter = self._make_filter(options)
|
|
|
|
self.mtime = options.get("mtime")
|
|
|
|
self.mtime = options.get("mtime")
|
|
|
|
self.omode = options.get("open", omode)
|
|
|
|
self.omode = options.get("open", omode)
|
|
|
|
self.encoding = options.get("encoding", "utf-8")
|
|
|
|
self.encoding = options.get("encoding", "utf-8")
|
|
|
|
self.private = options.get("private", False)
|
|
|
|
|
|
|
|
self.skip = options.get("skip", False)
|
|
|
|
self.skip = options.get("skip", False)
|
|
|
|
|
|
|
|
|
|
|
|
def run(self, pathfmt):
|
|
|
|
def run(self, pathfmt):
|
|
|
@ -231,10 +231,33 @@ class MetadataPP(PostProcessor):
|
|
|
|
fp.write("\n".join(tags) + "\n")
|
|
|
|
fp.write("\n".join(tags) + "\n")
|
|
|
|
|
|
|
|
|
|
|
|
def _write_json(self, fp, kwdict):
|
|
|
|
def _write_json(self, fp, kwdict):
|
|
|
|
if not self.private:
|
|
|
|
if self.filter:
|
|
|
|
kwdict = util.filter_dict(kwdict)
|
|
|
|
kwdict = self.filter(kwdict)
|
|
|
|
fp.write(self._json_encode(kwdict) + "\n")
|
|
|
|
fp.write(self._json_encode(kwdict) + "\n")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _make_filter(self, options):
|
|
|
|
|
|
|
|
include = options.get("include")
|
|
|
|
|
|
|
|
if include:
|
|
|
|
|
|
|
|
if isinstance(include, str):
|
|
|
|
|
|
|
|
include = include.split(",")
|
|
|
|
|
|
|
|
return lambda d: {k: d[k] for k in include if k in d}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exclude = options.get("exclude")
|
|
|
|
|
|
|
|
private = options.get("private")
|
|
|
|
|
|
|
|
if exclude:
|
|
|
|
|
|
|
|
if isinstance(exclude, str):
|
|
|
|
|
|
|
|
exclude = exclude.split(",")
|
|
|
|
|
|
|
|
exclude = set(exclude)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if private:
|
|
|
|
|
|
|
|
return lambda d: {k: v for k, v in d.items()
|
|
|
|
|
|
|
|
if k not in exclude}
|
|
|
|
|
|
|
|
return lambda d: {k: v for k, v in util.filter_dict(d).items()
|
|
|
|
|
|
|
|
if k not in exclude}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not private:
|
|
|
|
|
|
|
|
return util.filter_dict
|
|
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
@staticmethod
|
|
|
|
def _make_encoder(options, indent=None):
|
|
|
|
def _make_encoder(options, indent=None):
|
|
|
|
return json.JSONEncoder(
|
|
|
|
return json.JSONEncoder(
|
|
|
|