Improve the reliability of Exiftool-base parsers
This commit is contained in:
parent
2e3496d3d4
commit
f5aef1b391
@ -20,13 +20,18 @@ class ExiftoolParser(abstract.AbstractParser):
|
|||||||
meta_allowlist = set() # type: Set[str]
|
meta_allowlist = set() # type: Set[str]
|
||||||
|
|
||||||
def get_meta(self) -> Dict[str, Union[str, dict]]:
|
def get_meta(self) -> Dict[str, Union[str, dict]]:
|
||||||
|
try:
|
||||||
if self.sandbox:
|
if self.sandbox:
|
||||||
out = bubblewrap.run([_get_exiftool_path(), '-json', self.filename],
|
out = bubblewrap.run([_get_exiftool_path(), '-json',
|
||||||
|
self.filename],
|
||||||
input_filename=self.filename,
|
input_filename=self.filename,
|
||||||
check=True, stdout=subprocess.PIPE).stdout
|
check=True, stdout=subprocess.PIPE).stdout
|
||||||
else:
|
else:
|
||||||
out = subprocess.run([_get_exiftool_path(), '-json', self.filename],
|
out = subprocess.run([_get_exiftool_path(), '-json',
|
||||||
|
self.filename],
|
||||||
check=True, stdout=subprocess.PIPE).stdout
|
check=True, stdout=subprocess.PIPE).stdout
|
||||||
|
except subprocess.CalledProcessError: # pragma: no cover
|
||||||
|
raise ValueError
|
||||||
meta = json.loads(out.decode('utf-8'))[0]
|
meta = json.loads(out.decode('utf-8'))[0]
|
||||||
for key in self.meta_allowlist:
|
for key in self.meta_allowlist:
|
||||||
meta.pop(key, None)
|
meta.pop(key, None)
|
||||||
|
Loading…
Reference in New Issue
Block a user