update examples to work with modified req client

examples now expect env variables
This commit is contained in:
2026-03-27 16:29:16 +00:00
parent 7126a2efe0
commit fe9f305afe
7 changed files with 62 additions and 33 deletions

View File

@@ -1,11 +1,13 @@
import time
import os
from threading import Event
import obsws_python as obs
class Observer:
def __init__(self):
self._client = obs.EventClient()
def __init__(self, host, port, password, stop_event):
self._client = obs.EventClient(host=host, port=port, password=password)
self._stop_event = stop_event
self._client.callback.register(
[
self.on_current_program_scene_changed,
@@ -15,7 +17,6 @@ class Observer:
]
)
print(f"Registered events: {self._client.callback.get()}")
self.running = True
def __enter__(self):
return self
@@ -38,10 +39,15 @@ class Observer:
def on_exit_started(self, _):
"""OBS has begun the shutdown process."""
print("OBS closing!")
self.running = False
self._stop_event.set()
if __name__ == "__main__":
with Observer() as observer:
while observer.running:
time.sleep(0.1)
host = os.getenv("OBSWS_HOST", "localhost")
port = int(os.getenv("OBSWS_PORT", 4455))
password = os.getenv("OBSWS_PASSWORD", "")
stop_event = Event()
with Observer(host, port, password, stop_event) as observer:
stop_event.wait()

View File

@@ -1,13 +1,14 @@
import inspect
import os
import keyboard
import keyboard # type: ignore
import obsws_python as obs
class Observer:
def __init__(self):
self._client = obs.EventClient()
def __init__(self, host, port, password):
self._client = obs.EventClient(host=host, port=port, password=password)
self._client.callback.register(self.on_current_program_scene_changed)
print(f"Registered events: {self._client.callback.get()}")
@@ -34,12 +35,16 @@ def version():
def set_scene(scene, *args):
req_client.set_current_program_scene(scene)
req_client.set_current_program_scene(scene_name=scene)
if __name__ == "__main__":
with obs.ReqClient() as req_client:
with Observer() as observer:
host = os.getenv("OBSWS_HOST", "localhost")
port = int(os.getenv("OBSWS_PORT", 4455))
password = os.getenv("OBSWS_PASSWORD", "")
with obs.ReqClient(host=host, port=port, password=password) as req_client:
with Observer(host, port, password) as observer:
keyboard.add_hotkey("0", version)
keyboard.add_hotkey("1", set_scene, args=("START",))
keyboard.add_hotkey("2", set_scene, args=("BRB",))

View File

@@ -1,3 +1,4 @@
import os
from enum import IntEnum
from math import log
@@ -34,8 +35,15 @@ def on_input_volume_meters(data):
def main():
host = os.getenv("OBSWS_HOST", "localhost")
port = int(os.getenv("OBSWS_PORT", 4455))
password = os.getenv("OBSWS_PASSWORD", "")
with obs.EventClient(
subs=(obs.Subs.LOW_VOLUME | obs.Subs.INPUTVOLUMEMETERS)
host=host,
port=port,
password=password,
subs=(obs.Subs.LOW_VOLUME | obs.Subs.INPUTVOLUMEMETERS),
) as client:
client.callback.register([on_input_volume_meters, on_input_mute_state_changed])

View File

@@ -1,16 +1,21 @@
import os
import time
import obsws_python as obs
def main():
with obs.ReqClient() as client:
host = os.getenv("OBSWS_HOST", "localhost")
port = int(os.getenv("OBSWS_PORT", 4455))
password = os.getenv("OBSWS_PASSWORD", "")
with obs.ReqClient(host=host, port=port, password=password) as client:
resp = client.get_scene_list()
scenes = [di.get("sceneName") for di in reversed(resp.scenes)]
for scene in scenes:
print(f"Switching to scene {scene}")
client.set_current_program_scene(scene)
client.set_current_program_scene(scene_name=scene)
time.sleep(0.5)