Commit Graph

73 Commits

Author SHA1 Message Date
94758cff4e fix(state): make add_file_to_state idempotent 2026-02-15 20:45:36 +00:00
Dylan De Faoite
a0040b0f43 docs: add OBS rationale 2026-02-10 14:50:02 +00:00
a697ed6643 fix: handle clean shutdown upon SIGTERM 2026-02-05 20:09:56 +00:00
f40714c409 fix: double entry of OBS files into state upon startup 2026-02-05 20:04:38 +00:00
d6867c0df3 fix: incorrect progress bar tracking
Hacky workaround that involves working with FFMPEG negative timestamping
2026-02-02 23:58:53 +00:00
996568a43c fix: rounding tqdm warning 2026-02-02 21:55:17 +00:00
7a9a878871 fix: incorrect lib name in pyproject 2026-02-01 23:28:49 +00:00
4a16733362 fix: save output now takes timestamp of inital marker 2026-02-01 03:05:10 +00:00
12aaef0673 feat: default video dir in config 2026-02-01 02:57:13 +00:00
702973cc62 chore: round seconds output during clip creation 2026-02-01 01:18:19 +00:00
e36b9801db feat: add progress bar for video creation 2026-02-01 01:15:50 +00:00
ce2eb76646 chore: improve logging 2026-02-01 01:09:35 +00:00
b209a15dc3 chore: remove unused import 2026-02-01 01:03:16 +00:00
91a7695b02 fix: remove unused shutdown handler 2026-01-29 00:16:03 +00:00
699e8188dc chore: add logging to daemon 2026-01-29 00:14:53 +00:00
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