2 Commits

Author SHA1 Message Date
09065f3e92 Make OBSClient only delete reply upon full receipt 2021-09-19 12:46:33 -05:00
0ff1dfd300 Add obs scene switcher script 2021-09-19 12:43:52 -05:00
2 changed files with 38 additions and 1 deletions

36
obs_scene_switcher.py Normal file
View File

@ -0,0 +1,36 @@
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()

View File

@ -40,7 +40,8 @@ void OBSClient::setSlidesVisible(int state) {
void OBSClient::get(QString urlExt) {
QUrl url(QString(BaseUrl) + urlExt);
QNetworkRequest rqst(url);
m_nam->get(rqst)->deleteLater();
auto reply = m_nam->get(rqst);
connect(reply, &QIODevice::readyRead, reply, &QObject::deleteLater);
}
void OBSClient::poll() {