Commit Graph

58 Commits

Author SHA1 Message Date
2021cd3809 fix: incorrect file deletion logic 2026-01-28 20:35:33 +00:00
6d11eab503 fix: incorrect file removal loop 2026-01-27 23:34:09 +00:00
338de19d57 refactor: remove accidental print statment 2026-01-27 23:31:50 +00:00
eb47077b8c fix: markers only update upon calling rewind list - now update in daemon 2026-01-27 23:30:23 +00:00
aae6540678 prevent trackback log upon error by wrapping cli in try-catch 2026-01-25 00:08:04 +00:00
47bbfb9607 refactor & silence ConnectionRefusedError when attempting to connect to OBS instance 2026-01-18 23:37:49 +00:00
7a2b4e806f removed unnecessary comments 2026-01-18 23:31:23 +00:00
47fe0e37e9 Add check for existing OBS instance
.wait() is required as the command does not finish in time and will kill the new OBS instance
2026-01-18 23:29:24 +00:00
4365dd89b2 Remove OBS shutdown error check
By removing the .sentinel file, OBS loses the last crash data, which allows OBS to start without prompts
2026-01-18 23:27:01 +00:00
7e8e5c0594 remove debug message 2026-01-18 22:17:23 +00:00
754f6b130c rewind: make helpers private, clean up marker handling
Rename internal helpers to underscore-prefixed versions and move
them closer to their actual call sites. These functions were never
meant to be part of the public API.

Clean up marker handling by separating concerns properly:
printing markers no longer doubles as an existence check, and old
markers are cleaned explicitly.

Also drop stray debug logging when loading config.

No functional change intended, just less confusion and tighter scope.
2026-01-18 22:13:29 +00:00
73688e5db8 update daemon to check if initial marker already exists and remove if it does 2026-01-16 23:28:02 +00:00
b0c1ccf7df update marker logic to throw error if multiple markers exist 2026-01-16 23:27:40 +00:00
f897423f85 relocated config file into .config folder 2026-01-16 21:42:16 +00:00
cccd8ad730 update gitignore & reorganise imports in daemon 2026-01-16 21:33:20 +00:00
687c49d9cc add initial marker for daemon start 2026-01-16 21:30:54 +00:00
4982deb71c add requirements file for ease of development 2026-01-16 21:30:35 +00:00
9a536e43a6 update example config with record settings 2026-01-15 16:41:56 +00:00
52fe12386d refactor: remove unused imports from paths.py and state.py 2026-01-11 22:59:59 +00:00
252f25d96a update save output to move datetime to the front for better order in folders 2026-01-07 20:27:02 +00:00
9a76a96c00 fix incorrect import statement 2026-01-07 20:22:40 +00:00
23d576c438 refactor: extract state management into dedicated module and persist across restarts
Move state handling out of daemon and paths into a new state module.

- Introduce state.py for loading, writing, and maintaining state.json
- Persist recorded file metadata across daemon restarts
- Add cleanup of stale state entries when files are deleted
- Rename cleanup_old_files to cleanup_physical_files for clarity
- Ensure state file is created lazily if missing
2026-01-07 20:15:54 +00:00
a135b3f140 refactor open_obs_connection to implement exponential backoff and simplify connection logic 2025-12-30 00:46:18 +00:00
Dylan De Faoite
b8e1a54f82 Revise README.md to enhance project description
Updated project overview and clarified functionality.
2025-12-20 23:30:54 +00:00
661d29997d format top-level imports to be in order of length & remove unnecessary print statements 2025-12-18 22:38:37 +00:00
766ce08e0d replace sseof with -t flag & remove constant that now lives in the config file 2025-12-18 22:36:13 +00:00
51f4c38b63 remove risky sseof call in ffmpeg & replace with length 2025-12-18 22:32:02 +00:00
af22aee37b ADD save video functionality between markers 2025-12-18 20:54:25 +00:00
4118590dc7 UPDATE core.py and daemon.py to use max_record_time from config for managing old markers 2025-12-18 20:30:39 +00:00
dba8c4df69 UPDATE README.md 2025-12-18 20:24:51 +00:00
ad1241d649 UPDATE gitignore 2025-12-18 20:23:30 +00:00
8fbaeae652 REFactor concat_ts_files function for improved clarity and efficiency; add clean_old_markers function to manage marker retention 2025-12-18 20:23:20 +00:00
143f4e0c8d ADD list command to CLI for displaying all markers 2025-12-18 20:17:54 +00:00
3c870c7a69 RENAME clip.py to cli.py & RENAME video.py to core.py to better reflect purpose
In addition, added basic mark command
2025-12-18 20:09:54 +00:00
f7b8910bd8 ADD file system event handling to monitor & allow for timestamp-based seeking 2025-12-18 19:46:06 +00:00
738c463e6a ADD watchdog dependency to pyproject.toml 2025-12-18 19:45:22 +00:00
c26084091f ADD argparse import to clip.py, create example.config.toml, and reorganize imports in paths.py and video.py 2025-12-18 15:17:40 +00:00
6105a59a1d ADD configuration loading from user and default config files 2025-12-18 15:16:19 +00:00
3e2efe06b1 REMOVE unused imports and PATCH broken clip function signature 2025-12-18 15:11:48 +00:00
20e5e977e3 MOVE clip creation logic out of CLI entry point 2025-12-18 14:22:37 +00:00
c871d0ddf7 RENAME service.py to daemon.py & update it within pyproject.toml 2025-12-18 01:30:56 +00:00
7b903fb27e ADD signal handling for graceful shutdown in service.py 2025-12-18 01:21:44 +00:00
36868a08ec ADD function signatures and remove unused recording commands 2025-12-18 01:16:59 +00:00
fab19ae1b6 ADD pipx egg info to gitignore 2025-12-18 00:39:07 +00:00
96e08fac28 REMOVE unused "clean_old_ts_files()"
Also renamed undescriptive "save()" to "combine_last_x_ts_files()"
2025-12-18 00:38:27 +00:00
1113ae3ec1 ADD rewind-daemon as a command
Such that rewind-daemon can easily run in the background. Update service.py to fix library paths
2025-12-18 00:12:50 +00:00
b7b57a259f PATCH missing function call from paths.py
Caused the following calls to treat as a direct function object instead of the return from the function
2025-12-17 23:56:26 +00:00
739ff6d208 REMOVE abstraction of save() 2025-12-17 23:52:39 +00:00
d98dc8fa70 MOVE write_state and load_state functions to paths.py
This is to encapsulate all path and state file related operations within the paths module.
2025-12-17 23:52:00 +00:00
35a68b04a8 ADD paths module
To automate the fetching of the state file in a safe, atomic way.
2025-12-17 23:49:50 +00:00