From: Marcel van der Veldt Date: Thu, 23 Mar 2023 23:14:08 +0000 (+0100) Subject: fix streams X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=48da1d74afd35dfd88f8d6467ed7e114e3183654;p=music-assistant-server.git fix streams --- diff --git a/music_assistant/server/controllers/streams.py b/music_assistant/server/controllers/streams.py index 445b0c4e..fe77b8ac 100644 --- a/music_assistant/server/controllers/streams.py +++ b/music_assistant/server/controllers/streams.py @@ -185,12 +185,6 @@ class StreamsController: async def setup(self) -> None: """Async initialize of module.""" - self.mass.webserver.register_route("/stream/preview", self._serve_preview) - self.mass.webserver.register_route( - "/stream/{player_id}/{queue_item_id}/{stream_id}.{fmt}", - self._serve_queue_stream, - ) - ffmpeg_present, libsoxr_support, version = await check_audio_support() if not ffmpeg_present: LOGGER.error("FFmpeg binary not found on your system, playback will NOT work!.") @@ -293,7 +287,7 @@ class StreamsController: f"provider={provider_domain_or_instance_id}&item_id={enc_track_id}" ) - async def _serve_queue_stream(self, request: web.Request) -> web.Response: + async def serve_queue_stream(self, request: web.Request) -> web.Response: """Serve Queue Stream audio to player(s).""" LOGGER.debug( "Got %s request to %s from %s\nheaders: %s\n", @@ -602,7 +596,7 @@ class StreamsController: LOGGER.info("Finished Queue Flow stream for Queue %s", queue.display_name) - async def _serve_preview(self, request: web.Request): + async def serve_preview(self, request: web.Request): """Serve short preview sample.""" provider_domain_or_instance_id = request.query["provider"] item_id = urllib.parse.unquote(request.query["item_id"]) diff --git a/music_assistant/server/controllers/webserver.py b/music_assistant/server/controllers/webserver.py index a9412d7b..7b5bcc19 100644 --- a/music_assistant/server/controllers/webserver.py +++ b/music_assistant/server/controllers/webserver.py @@ -44,6 +44,12 @@ class WebserverController: self.port = await select_free_port(8095, 9200) LOGGER.info("Starting webserver on port %s", self.port) self._apprunner = web.AppRunner(self.webapp, access_log=None) + # setup stream paths + self.webapp.router.add_get("/stream/preview", self.mass.streams.serve_preview) + self.webapp.router.add_get( + "/stream/{player_id}/{queue_item_id}/{stream_id}.{fmt}", + self.mass.streams.serve_queue_stream, + ) # setup frontend frontend_dir = locate_frontend() @@ -107,7 +113,7 @@ class WebserverController: return await handler(request) # deny all other requests LOGGER.debug( - "Received %s request to %s from %s\nheaders: %s\n", + "Received unhandled %s request to %s from %s\nheaders: %s\n", request.method, request.path, request.remote, diff --git a/music_assistant/server/server.py b/music_assistant/server/server.py index 9310a4e5..8e2c0c05 100644 --- a/music_assistant/server/server.py +++ b/music_assistant/server/server.py @@ -113,10 +113,10 @@ class MusicAssistant: await self.unload_provider(prov_id) # stop core controllers await self.streams.close() + await self.webserver.close() await self.metadata.close() await self.music.close() await self.players.close() - await self.webserver.close() # cleanup cache and config await self.config.close() await self.cache.close()