diff --git a/pyproject.toml b/pyproject.toml index 9edb0ef..9675d47 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "simple-recorder" -version = "0.1.5" +version = "0.1.6" description = "A simple OBS recorder" authors = [{ name = "onyx-and-iris", email = "code@onyxandiris.online" }] dependencies = [ diff --git a/src/simple_recorder/cli.py b/src/simple_recorder/cli.py index 689cb9d..0bca4ff 100644 --- a/src/simple_recorder/cli.py +++ b/src/simple_recorder/cli.py @@ -47,10 +47,18 @@ class SimpleRecorder(Command): env="OBS_THEME", help=f"GUI theme ({', '.join(themes)})", ) + debug: bool = arg( + default=False, + env="DEBUG", + help="Enable debug logging", + ) @override async def run(self): """Run the Simple Recorder GUI.""" + if self.debug: + logging.basicConfig(level=logging.DEBUG) + window = SimpleRecorderWindow(self.host, self.port, self.password, self.theme) await window.run() diff --git a/src/simple_recorder/gui.py b/src/simple_recorder/gui.py index 5935df2..c797676 100644 --- a/src/simple_recorder/gui.py +++ b/src/simple_recorder/gui.py @@ -1,8 +1,8 @@ import logging import FreeSimpleGUI as fsg -from clypi import ClypiException +from .errors import SimpleRecorderError from .start import Start from .stop import Stop @@ -31,11 +31,12 @@ class SimpleRecorderWindow(fsg.Window): async def run(self): while True: event, values = self.read() + self.logger.debug(f"Event: {event}, Values: {values}") if event == fsg.WIN_CLOSED: break - match event.split(" || "): - case ["Start Recording", "RETURN" | None] | ["-FILENAME-", "RETURN"]: + match e := event.split(" || "): + case ["Start Recording"] | ["Start Recording" | "-FILENAME-", "RETURN"]: try: await Start( filename=values["-FILENAME-"], @@ -46,12 +47,12 @@ class SimpleRecorderWindow(fsg.Window): self["-OUTPUT-"].update( "Recording started successfully", text_color="green" ) - except ClypiException as e: + except SimpleRecorderError as e: self["-OUTPUT-"].update( f"Error: {e.raw_message}", text_color="red" ) - case ["Stop Recording", "RETURN" | None]: + case ["Stop Recording"] | ["Stop Recording", "RETURN"]: try: await Stop( host=self.host, port=self.port, password=self.password @@ -59,12 +60,12 @@ class SimpleRecorderWindow(fsg.Window): self["-OUTPUT-"].update( "Recording stopped successfully", text_color="green" ) - except ClypiException as e: + except SimpleRecorderError as e: self["-OUTPUT-"].update( f"Error: {e.raw_message}", text_color="red" ) case _: - self.logger.warning(f"Unhandled event: {event}") + self.logger.warning(f"Unhandled event: {e}") self.close()