From 9abf01c0adb9b5e7b0d74da76bf7f86b49e30cb6 Mon Sep 17 00:00:00 2001 From: Alexander Schmidt Date: Mon, 19 Oct 2020 14:32:36 +0200 Subject: [PATCH] configurable trigger times --- doc/photosort-config.json | 6 ++++++ src/bunch.py | 2 +- src/dirtrigger.py | 10 +++++----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/doc/photosort-config.json b/doc/photosort-config.json index 8dbc884..63683a4 100644 --- a/doc/photosort-config.json +++ b/doc/photosort-config.json @@ -8,14 +8,20 @@ "src_dirs": [ { "path": "/var/local/photosort/sorted/mbk/incoming", + "cool_time": 60, + "max_time": 86400, "cleanup": true }, { "path": "/var/local/photosort/shares/camera-evelyn", + "cool_time": 60, + "max_time": 86400, "cleanup": false }, { "path": "/var/local/photosort/shares/camera-guenther", + "cool_time": 60, + "max_time": 86400, "cleanup": false } ] diff --git a/src/bunch.py b/src/bunch.py index b61ffce..2ac33ca 100644 --- a/src/bunch.py +++ b/src/bunch.py @@ -18,7 +18,7 @@ class Bunch: for src_dir_cfg in cfg['src_dirs']: self._sources.append( Bunch.TriggeredSource( - DirTrigger(src_dir_cfg['path']), + DirTrigger(src_dir_cfg['path'], src_dir_cfg['cool_time'], src_dir_cfg['max_time']), Migrator(src_dir_cfg['path'], cfg['dst_dir']['path']), src_dir_cfg['cleanup'] ) diff --git a/src/dirtrigger.py b/src/dirtrigger.py index 2ea981c..67945de 100644 --- a/src/dirtrigger.py +++ b/src/dirtrigger.py @@ -4,13 +4,13 @@ from watchdog.events import DirDeletedEvent, FileDeletedEvent, FileSystemEventHa from watchdog.observers import Observer class DirTrigger(FileSystemEventHandler): - COOL_TIME = 10 - MAX_TIME = 86400 - def __init__(self, dir_path): + def __init__(self, dir_path, cool_time, max_time): self._got_event = False self._last_event_time = 0.0 self._last_reset_time = 0.0 + self._cool_time = cool_time + self._max_time = max_time self._lock = threading.Lock() self._observer = Observer() self._observer.schedule(self, path=dir_path, recursive=True) @@ -25,8 +25,8 @@ class DirTrigger(FileSystemEventHandler): self._lock.acquire() try: return ( self._got_event and - (time.time() - self._last_event_time > DirTrigger.COOL_TIME) ) or \ - time.time() - self._last_reset_time > DirTrigger.MAX_TIME + (time.time() - self._last_event_time > self._cool_time) ) or \ + time.time() - self._last_reset_time > self._max_time finally: self._lock.release() -- 2.39.5