]> git.treefish.org Git - photosort.git/commitdiff
configurable trigger times
authorAlexander Schmidt <alex@treefish.org>
Mon, 19 Oct 2020 12:32:36 +0000 (14:32 +0200)
committerAlexander Schmidt <alex@treefish.org>
Mon, 19 Oct 2020 12:32:36 +0000 (14:32 +0200)
doc/photosort-config.json
src/bunch.py
src/dirtrigger.py

index 8dbc884f63551ff611cd19c830e3ad25f8d6254d..63683a4753d1b8adad5a8ecb0ee27578c0e50024 100644 (file)
@@ -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
                 }
             ]
index b61ffcec631c5c70b19e0754dd9c21022d7156ea..2ac33ca7547521737b47d2c0bf17944063a2ed0e 100644 (file)
@@ -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']
                 )
index 2ea981ccd6afd66cd678d84df9c8dd91f038eb61..67945debac96ab59950d5cb6512f4b1fa1291e7c 100644 (file)
@@ -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()