diff --git a/rewind/clip.py b/rewind/clip.py index d7831ce..0d18b55 100755 --- a/rewind/clip.py +++ b/rewind/clip.py @@ -4,20 +4,12 @@ from rewind.video import combine_last_x_ts_files import obsws_python as obs import sys, argparse -def start_recording(con): - con.start_record() - print("Started recording") - -def stop_recording(con): - con.stop_record() - print("Stopped recording") - -def create_recording(seconds): +def create_recording(seconds: int) -> None: output_file_name = f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}.mp4" combine_last_x_ts_files(seconds, output_file_name) print(f"Created clip: {output_file_name}") -def build_parser(): +def build_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser( prog="rewind", description="Control OBS recording and create instant clips", @@ -25,8 +17,6 @@ def build_parser(): sub = parser.add_subparsers(dest="command", required=True) - sub.add_parser("start", help="Start OBS recording") - sub.add_parser("stop", help="Stop OBS recording") save = sub.add_parser("save", help="Save a section from the current recording") save.add_argument( "-s", "--seconds", @@ -37,7 +27,7 @@ def build_parser(): return parser -def main(argv=None): +def main(argv=None) -> int: parser = build_parser() args = parser.parse_args(argv) @@ -46,7 +36,7 @@ def main(argv=None): else: parser.error("Unknown command") - + return 0 if __name__ == "__main__": sys.exit(main()) \ No newline at end of file diff --git a/rewind/paths.py b/rewind/paths.py index a4c42f0..c681755 100644 --- a/rewind/paths.py +++ b/rewind/paths.py @@ -18,7 +18,7 @@ def load_state() -> dict: with get_state_file_path().open() as f: return json.load(f) -def write_state(state: dict): +def write_state(state: dict) -> None: tmp = get_state_file_path().with_suffix(".tmp") with tmp.open("w") as f: json.dump(state, f, indent=2) diff --git a/rewind/service.py b/rewind/service.py index c911ec2..f597a6a 100755 --- a/rewind/service.py +++ b/rewind/service.py @@ -4,7 +4,6 @@ import datetime import time import obsws_python as obs import subprocess -import json from rewind.video import get_duration from rewind.paths import load_state, write_state @@ -23,15 +22,15 @@ def open_obs_connection() -> obs.ReqClient | None: print("Could not connect to OBS. Is it running and is the WebSocket server enabled?") return None -def start_recording(con): +def start_recording(con: obs.ReqClient) -> None: con.start_record() print("Started recording") -def stop_recording(con): +def stop_recording(con: obs.ReqClient) -> None: con.stop_record() print("Stopped recording") -def cleanup_old_files(directory, max_age_seconds): +def cleanup_old_files(directory: str, max_age_seconds: int) -> None: for filename in os.listdir(directory): file_path = os.path.join(directory, filename) if os.path.isfile(file_path): @@ -41,11 +40,11 @@ def cleanup_old_files(directory, max_age_seconds): print(f"Removed old file: {file_path}") -def create_state_file(): +def create_state_file() -> None: state = {"files": []} write_state(state) -def add_file_to_state(file_path): +def add_file_to_state(file_path: str) -> None: state = load_state() files = state.get("files", []) @@ -62,7 +61,7 @@ def add_file_to_state(file_path): state["files"] = files write_state(state) -def main(): +def main() -> None: open_obs() time.sleep(5) con = open_obs_connection()