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]
|
||||
|
||||
def get_meta(self) -> Dict[str, Union[str, dict]]:
|
||||
if self.sandbox:
|
||||
out = bubblewrap.run([_get_exiftool_path(), '-json', self.filename],
|
||||
input_filename=self.filename,
|
||||
check=True, stdout=subprocess.PIPE).stdout
|
||||
else:
|
||||
out = subprocess.run([_get_exiftool_path(), '-json', self.filename],
|
||||
check=True, stdout=subprocess.PIPE).stdout
|
||||
try:
|
||||
if self.sandbox:
|
||||
out = bubblewrap.run([_get_exiftool_path(), '-json',
|
||||
self.filename],
|
||||
input_filename=self.filename,
|
||||
check=True, stdout=subprocess.PIPE).stdout
|
||||
else:
|
||||
out = subprocess.run([_get_exiftool_path(), '-json',
|
||||
self.filename],
|
||||
check=True, stdout=subprocess.PIPE).stdout
|
||||
except subprocess.CalledProcessError: # pragma: no cover
|
||||
raise ValueError
|
||||
meta = json.loads(out.decode('utf-8'))[0]
|
||||
for key in self.meta_allowlist:
|
||||
meta.pop(key, None)
|
||||
|
Loading…
Reference in New Issue
Block a user