mirror of
https://github.com/gtalent/sc9k.git
synced 2025-01-23 07:23:38 -06:00
42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
from http.server import HTTPServer, BaseHTTPRequestHandler
|
|
from urllib.parse import urlparse, parse_qs
|
|
import threading
|
|
import obspython as obs
|
|
|
|
|
|
def set_current_scene(scene_name):
|
|
scenes = obs.obs_frontend_get_scenes()
|
|
for scene in scenes:
|
|
name = obs.obs_source_get_name(scene)
|
|
if name == scene_name:
|
|
obs.obs_frontend_set_current_scene(scene)
|
|
return 0
|
|
return 1
|
|
|
|
|
|
class RqstHandler(BaseHTTPRequestHandler):
|
|
|
|
def do_GET(self):
|
|
up = urlparse(self.path)
|
|
if up.path == '/Scene':
|
|
qc = parse_qs(up.query)
|
|
set_current_scene(qc.get('name', [''])[0])
|
|
self.send_response(200)
|
|
self.end_headers()
|
|
elif up.path == '/ping':
|
|
self.send_response(200)
|
|
self.end_headers()
|
|
|
|
|
|
def log_message(self, format, *args):
|
|
pass
|
|
|
|
|
|
def run(name):
|
|
httpd = HTTPServer(('127.0.0.1', 9302), RqstHandler)
|
|
httpd.serve_forever()
|
|
|
|
|
|
t = threading.Thread(target=run, args=(1,), daemon=True)
|
|
t.start()
|