1
0
Fork 0

Implement (currently non-functional) /streams/ endpoint on stream API.

liquidsoap-2.2
Icedream 2022-09-11 14:31:11 +02:00
parent 7a67544c38
commit 1a4b28b672
Signed by: icedream
GPG Key ID: 468BBEEBB9EC6AEA
1 changed files with 15 additions and 11 deletions

View File

@ -2,8 +2,20 @@ stream_api_port=21336
interactive.harbor(port=stream_api_port, uri="/interactive") # expose through stream API port interactive.harbor(port=stream_api_port, uri="/interactive") # expose through stream API port
# list of stream IDs that have been set up by setup_harbor_stream_api
stream_api_streams=[] stream_api_streams=[]
def setup_harbor_stream_api_general()
def on_list(~protocol, ~data, ~headers, uri) =
data = stream_api_streams
http.response(protocol=protocol, code=200, headers=[
("content-type","application/json"),
], data=json.stringify(data))
end
harbor.http.register(port=stream_api_port, method="GET", "/streams/", on_list)
end
def setup_harbor_stream_api(s) = def setup_harbor_stream_api(s) =
def on_start(~protocol, ~data, ~headers, uri) = def on_start(~protocol, ~data, ~headers, uri) =
s.start() s.start()
@ -33,21 +45,13 @@ def setup_harbor_stream_api(s) =
], data=json.stringify(data)) ], data=json.stringify(data))
end end
def on_list(~protocol, ~data, ~headers, uri) = s.id()::stream_api_streams
data = [
("ids", stream_api_streams)
]
http.response(protocol=protocol, code=200, headers=[
("content-type","application/json"),
], data=json.stringify(data))
end
stream_api_streams = list.add(s.id(), stream_api_streams)
harbor.http.register(port=stream_api_port, method="POST", "/streams/#{s.id()}/start", on_start) harbor.http.register(port=stream_api_port, method="POST", "/streams/#{s.id()}/start", on_start)
harbor.http.register(port=stream_api_port, method="POST", "/streams/#{s.id()}/stop", on_stop) harbor.http.register(port=stream_api_port, method="POST", "/streams/#{s.id()}/stop", on_stop)
harbor.http.register(port=stream_api_port, method="GET", "/streams/#{s.id()}", on_info) harbor.http.register(port=stream_api_port, method="GET", "/streams/#{s.id()}", on_info)
harbor.http.register(port=stream_api_port, method="GET", "/streams/", on_list)
s s
end end
setup_harbor_stream_api_general()