2023-07-05 13:44:21 +01:00
|
|
|
import slobs_websocket
|
|
|
|
|
|
|
|
|
|
|
|
def ensure_sl(func):
|
|
|
|
"""ensure a streamlabs websocket connection has been established"""
|
|
|
|
|
|
|
|
def wrapper(self, *args):
|
2025-01-20 16:57:48 +00:00
|
|
|
if self._duckypad.streamlabs.conn.ws is None:
|
2023-07-05 13:44:21 +01:00
|
|
|
try:
|
|
|
|
try:
|
|
|
|
self.connect()
|
|
|
|
except AttributeError:
|
2025-01-20 16:57:48 +00:00
|
|
|
self._duckypad.streamlabs.connect()
|
2023-07-05 13:44:21 +01:00
|
|
|
except slobs_websocket.exceptions.ConnectionFailure:
|
2025-01-20 16:57:48 +00:00
|
|
|
self._duckypad.streamlabs.conn.ws = None
|
2023-07-05 13:44:21 +01:00
|
|
|
return
|
|
|
|
return func(self, *args)
|
|
|
|
|
|
|
|
return wrapper
|
|
|
|
|
|
|
|
|
|
|
|
def ensure_obsws(func):
|
|
|
|
"""ensure an obs websocket connection has been established"""
|
|
|
|
|
|
|
|
def wrapper(self, *args):
|
|
|
|
if self.request is None:
|
|
|
|
try:
|
|
|
|
self.obs_connect()
|
|
|
|
except (ConnectionRefusedError, TimeoutError):
|
|
|
|
return
|
|
|
|
return func(self, *args)
|
|
|
|
|
|
|
|
return wrapper
|