From ac07266bff650de611ebf03984165d413ed118e5 Mon Sep 17 00:00:00 2001 From: Zeecka Date: Sun, 28 Dec 2025 17:44:13 +0100 Subject: [PATCH] Enhance error handling in exiftool and pngcheck analyzers --- aperisolve/analyzers/exiftool.py | 21 ++++++++++++--------- aperisolve/analyzers/pngcheck.py | 13 +++++++++++++ 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/aperisolve/analyzers/exiftool.py b/aperisolve/analyzers/exiftool.py index 23ec7bd..e13e2e9 100644 --- a/aperisolve/analyzers/exiftool.py +++ b/aperisolve/analyzers/exiftool.py @@ -18,21 +18,24 @@ def analyze_exiftool(input_img: Path, output_dir: Path) -> None: timeout=MAX_PENDING_TIME, ) - if data.stderr: - update_data( - output_dir, {"exiftool": {"status": "error", "error": data.stderr}} - ) - return - metadata: dict[str, str] = {} for line in data.stdout.split("\n"): if ":" in line: key, value = line.split(":", 1) metadata[key.strip()] = value.strip() - # exiftool_dir = output_dir / "exiftool" - # exiftool_dir.mkdir(parents=True, exist_ok=True) - # update_data(exiftool_dir, metadata, "data.json") + if data.stderr: + update_data( + output_dir, + { + "exiftool": { + "status": "error", + "output": metadata, + "error": data.stderr, + } + }, + ) + return update_data( output_dir, diff --git a/aperisolve/analyzers/pngcheck.py b/aperisolve/analyzers/pngcheck.py index 5c9a945..a398bd5 100644 --- a/aperisolve/analyzers/pngcheck.py +++ b/aperisolve/analyzers/pngcheck.py @@ -24,6 +24,19 @@ def analyze_pngcheck(input_img: Path, output_dir: Path) -> None: # ) # return + if "this is neither a PNG or JNG image nor a MNG stream" in data.stdout: + update_data( + output_dir, + { + "pngcheck": { + "status": "error", + "error": "ERRORS DETECTED: this is neither a PNG or JNG image nor a " + "MNG stream.", + } + }, + ) + return + data_pngcheck = data.stdout.split("\n") if data else [] data_pngcheck = [s for s in data_pngcheck if s]