From f40714c409e63230f4bf04a11a28aa5b3806e919 Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Thu, 5 Feb 2026 20:04:38 +0000 Subject: [PATCH] fix: double entry of OBS files into state upon startup --- rewind/daemon.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/rewind/daemon.py b/rewind/daemon.py index 9ffe826..247997c 100755 --- a/rewind/daemon.py +++ b/rewind/daemon.py @@ -8,13 +8,13 @@ import logging import json import shutil +from threading import Lock from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler from rewind.paths import load_config from rewind.core import mark, marker_exists, remove_marker from rewind.state import add_file_to_state, create_state_file_if_needed, cleanup_state_files -INTERVAL = 10 running = True logger = logging.getLogger(__name__) @@ -22,9 +22,13 @@ logger.setLevel(logging.DEBUG) logging.basicConfig(format="%(levelname)s:%(name)s:%(message)s") logging.getLogger("obsws_python").setLevel(logging.CRITICAL) +INTERVAL = 10 SENTINEL_FILE = os.path.expanduser("~/.config/obs-studio/.sentinel") OBS_MAX_RETRIES = 10 +seen_files = set() +seen_lock = Lock() + def open_obs(): kill_command = subprocess.run(['pkill', 'obs']) if kill_command.returncode not in [0, 1]: @@ -107,6 +111,11 @@ class Handler(FileSystemEventHandler): if not event.src_path.endswith(".ts"): return + with seen_lock: + if event.src_path in seen_files: + return + seen_files.add(event.src_path) + add_file_to_state(event.src_path) logger.info(f"Added new file to state: {event.src_path}")