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
8f07c9a247
REMOVE start_recording() and end_recording() methods from main
...
These methods have been moved to the daemon.
2025-12-17 23:49:26 +00:00
a15a7ecffe
ADD background daemon file
...
This file checks for new files, and updates a state file that tracks all TS files and their duration
2025-12-17 22:42:01 +00:00
c197e9d764
ADD old file deletion in the stop command
2025-12-16 19:51:31 +00:00
c3b79a1f47
RENAME "clip" option to "save"
...
Clips refer to short recordings, this command can save much longer recordings, therefore "save" is more appropriate
2025-12-16 18:26:00 +00:00
cef299b92f
MODULARISE clip file into separate functions & ADD argparser
2025-12-16 18:16:02 +00:00
c7d6c6adc3
ADD pyproject.toml
2025-12-16 18:14:44 +00:00
da56d2c73b
MOVE src into own dir
2025-12-16 17:10:26 +00:00
d2f91e16f7
Initial commit
2025-12-16 16:54:39 +00:00