diff --git a/.gitignore b/.gitignore index 6918ff5..58ee456 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,11 @@ env.bak/ venv.bak/ .hatch +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +.python-version + # Test/config quick.py config.toml diff --git a/obsws_python/baseclient.py b/obsws_python/baseclient.py index fedc517..ca9ac1e 100644 --- a/obsws_python/baseclient.py +++ b/obsws_python/baseclient.py @@ -108,9 +108,15 @@ class ObsClient: self.ws.send(json.dumps(payload)) try: response = json.loads(self.ws.recv()) - return response["op"] == 2 + if response["op"] != 2: + raise OBSSDKError( + "failed to identify client with the server, expected response with OpCode 2 Identified" + ) + return response["d"] except json.decoder.JSONDecodeError: - raise OBSSDKError("failed to identify client with the server") + raise OBSSDKError( + "failed to identify client with the server, please check connection settings" + ) def req(self, req_type, req_data=None): payload = { diff --git a/obsws_python/events.py b/obsws_python/events.py index 8b6b604..5ac828e 100644 --- a/obsws_python/events.py +++ b/obsws_python/events.py @@ -7,7 +7,7 @@ from websocket import WebSocketTimeoutException from .baseclient import ObsClient from .callback import Callback -from .error import OBSSDKTimeoutError +from .error import OBSSDKError, OBSSDKTimeoutError from .subs import Subs """ @@ -27,8 +27,14 @@ class EventClient: defaultkwargs = {"subs": Subs.LOW_VOLUME} kwargs = defaultkwargs | kwargs self.base_client = ObsClient(**kwargs) - if self.base_client.authenticate(): - self.logger.info(f"Successfully identified {self} with the server") + try: + success = self.base_client.authenticate() + self.logger.info( + f"Successfully identified {self} with the server using RPC version:{success['negotiatedRpcVersion']}" + ) + except OBSSDKError as e: + self.logger.error(f"{type(e).__name__}: {e}") + raise self.callback = Callback() self.subscribe() diff --git a/obsws_python/reqs.py b/obsws_python/reqs.py index 4ff4544..5037913 100644 --- a/obsws_python/reqs.py +++ b/obsws_python/reqs.py @@ -17,8 +17,14 @@ class ReqClient: def __init__(self, **kwargs): self.logger = logger.getChild(self.__class__.__name__) self.base_client = ObsClient(**kwargs) - if self.base_client.authenticate(): - self.logger.info(f"Successfully identified {self} with the server") + try: + success = self.base_client.authenticate() + self.logger.info( + f"Successfully identified {self} with the server using RPC version:{success['negotiatedRpcVersion']}" + ) + except OBSSDKError as e: + self.logger.error(f"{type(e).__name__}: {e}") + raise def __enter__(self): return self diff --git a/obsws_python/version.py b/obsws_python/version.py index 0c46db4..10cd127 100644 --- a/obsws_python/version.py +++ b/obsws_python/version.py @@ -1 +1 @@ -version = "1.5.1" +version = "1.5.2"