From 5203d236a73523a865c933198bee8282c13db000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Brunner?= Date: Sun, 26 Jan 2025 15:39:07 +0100 Subject: [PATCH] Fix task done --- scan_to_paperless/process.py | 4 +++- scan_to_paperless/status.py | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/scan_to_paperless/process.py b/scan_to_paperless/process.py index 59c579aa..e5b961de 100755 --- a/scan_to_paperless/process.py +++ b/scan_to_paperless/process.py @@ -2024,7 +2024,9 @@ async def _task(status: scan_to_paperless.status.Status) -> None: elif job_type == scan_to_paperless.status.JobType.DOWN: assert name is not None root_folder = os.path.join(os.environ.get("SCAN_SOURCE_FOLDER", "/source"), name) - shutil.rmtree(root_folder) + if os.path.exists(root_folder): + shutil.rmtree(root_folder) + status.remove_status(name) elif job_type == scan_to_paperless.status.JobType.CODE: assert name is not None print(f"Process code '{name}'") diff --git a/scan_to_paperless/status.py b/scan_to_paperless/status.py index 6b36d0d3..ca3579c2 100644 --- a/scan_to_paperless/status.py +++ b/scan_to_paperless/status.py @@ -153,6 +153,12 @@ def set_status( if write: self.write() + def remove_status(self, name: str) -> None: + """Remove the status when a task is completely done.""" + if name in self._status: + del self._status[name] + self.write() + def _init(self) -> None: """Scan for changes for waiting documents.""" self._update_scan_codes()