Working Version

This commit is contained in:
Alex Orid 2021-05-04 17:34:15 -04:00
parent 5d9831fc30
commit 3d0f2b0a90
2 changed files with 32 additions and 23 deletions

View File

@ -11,24 +11,22 @@ async def default_request():
result = await ws.call('GetVersion') # We get the current OBS version. More request data is not required
print(result) # Print the raw json output of the GetVersion request
await asyncio.sleep(1)
print("\n\n")
requests = result['available-requests'].split(',')
for r in requests:
print(r)
print("\n\n")
#data = {'source':'test_source', 'volume':0.5}
#result = await ws.call('SetVolume', data) # Make a request with the given data
#print(result)
await ws.disconnect() # Clean things up by disconnecting. Only really required in a few specific situations, but good practice if you are done making requests or listening to events.
return requests
async def make_custom_request(request, data=None):
await ws.connect() # Make the connection to OBS-Websocket
result = await ws.call(request) # We get the current OBS version. More request data is not required
print(result) # Print the raw json output of the GetVersion request
#result = await ws.call(request) # We get the current OBS version. More request data is not required
#print(result) # Print the raw json output of the GetVersion request
await asyncio.sleep(1)
if not data==None:
data = {'source':'test_source', 'volume':0.5}
result = await ws.call('SetVolume', data) # Make a request with the given data
#data = {'source':'tinycam', 'volume':0.5}
result = await ws.call(request, data=data) # Make a request with the given data
print(result)
await ws.disconnect() # Clean things up by disconnecting. Only really required in a few specific situations, but good practice if you are done making requests or listening to events.
@ -44,10 +42,10 @@ async def on_switchscenes(data):
def getRequests():
loop.run_until_complete(default_request())
return loop.run_until_complete(default_request())
def makeRequest(request):
loop.run_until_complete(make_custom_request(request))
def makeRequest(request, data):
loop.run_until_complete(make_custom_request(request, data))

View File

@ -16,19 +16,30 @@ api.config["DEBUG"] = False
possibleRequests = []
def init():
#possibleRequests = obsWebSocket.getRequests()
#obsWebSocket.makeRequest("ToggleStudioMode")
obsWebSocket.listenForData()
possibleRequests = obsWebSocket.getRequests()
for r in possibleRequests:
print("requestname: "+r)
#obsWebSocket.makeRequest("ToggleStudioMode", {'source':'tinycam', 'render':'True'})
obsWebSocket.makeRequest("SetSourceRender", data={'source':"tinycam", 'render': False, 'scene-name':"Cam feed (main) INFOBOX"})
obsWebSocket.makeRequest("SetSourceRender", data={'source':"tinycam", 'render': True, 'scene-name':"Cam feed (main) INFOBOX"})
@api.route('/api/v1/obs/websocket/getRequests', methods=['GET'])
def getRequests():
if 'name' in request.args:
pass
#if is_command(request.args['name']):
# return flask.make_response('', 200)
#else:
# return flask.make_response('', 404)
#obsWebSocket.listenForData()
def do_request(requestName, data):
if requestName in possibleRequests:
obsWebSocket.makeRequest(requestName, data)
@api.route('/api/v1/obs/websocket/makeRequest', methods=['GET'])
def makeRequest():
if 'request_name' not in request.args:
return flask.make_response('{\"text\":"Argument \'request_name\' not in request"}', 400)
if 'request_data' not in request.args:
data = None
else:
data = request.args['request_data']
#possibleRequests = obsWebSocket.getRequests()
do_request(request.args['request_name'], data)
if __name__ == "__main__":
init()
api.run(host='0.0.0.0', port=6009)
#api.run(host='0.0.0.0', port=6009)