small fix
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 28 Jul 2022 19:52:41 +0000 (21:52 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 28 Jul 2022 19:52:41 +0000 (21:52 +0200)
music_assistant/controllers/streams.py
music_assistant/mass.py

index cfaf72000206a6885484570ee51cdd880505c47d..a12765b094fe0d3d441d61e4fdeab1050e6c8e85 100644 (file)
@@ -171,38 +171,32 @@ class StreamsController:
 
         # try to recover from the situation where the player itself requests
         # a stream that is already done
-        if queue_stream is None:
+        if queue_stream is None or queue_stream.done.is_set():
             self.logger.warning(
-                "Got stream request for unknown or finished id: %s, trying resume",
+                "Got stream request for unknown or finished stream: %s",
                 stream_id,
             )
             if player := self.mass.players.get_player(client_id):
                 self.mass.create_task(player.active_queue.resume())
                 return web.FileResponse(SILENCE_FILE)
             return web.Response(status=404)
-        if queue_stream.done.is_set():
-            self.logger.warning(
-                "Got stream request for finished stream: %s, assuming resume", stream_id
-            )
-            self.mass.create_task(queue_stream.queue.resume())
-            return web.FileResponse(SILENCE_FILE)
 
         # handle a second connection for the same player
         # this means either that the player itself want to skip to the next track
         # or a misbehaving client which reconnects multiple times (e.g. Kodi)
-        if queue_stream.all_clients_connected.is_set():
-            self.logger.warning(
-                "Got stream request for running stream: %s, assuming next", stream_id
-            )
-            self.mass.create_task(queue_stream.queue.next())
-            return web.FileResponse(SILENCE_FILE)
-
         if client_id in queue_stream.connected_clients:
             self.logger.warning(
-                "Simultanuous connections detected from %s, playback may be disturbed",
+                "Simultanuous connections detected from %s, playback may be disturbed!",
                 client_id,
             )
             client_id += uuid4().hex
+        elif queue_stream.all_clients_connected.is_set():
+            self.logger.info(
+                "Got stream request for running stream: %s, assuming next", stream_id
+            )
+            if not queue_stream.signal_next and queue_stream.queue.items:
+                self.mass.create_task(queue_stream.queue.next())
+            return web.FileResponse(SILENCE_FILE)
 
         # prepare request, add some DLNA/UPNP compatible headers
         headers = {
index f5ce954b9a20a58db9ccc222ff03472a4ae64231..901237d7fc30604a49f5c726300ad4ee01dfb253 100644 (file)
@@ -103,9 +103,11 @@ class MusicAssistant:
         if self.closed:
             return
         if self.logger.isEnabledFor(logging.DEBUG):
-            self.logger.getChild("event").debug(
-                "%s %s", event.type.value, event.object_id or ""
-            )
+            # do not log queue time updated events because that is too chatty
+            if event.type != EventType.QUEUE_TIME_UPDATED:
+                self.logger.getChild("event").debug(
+                    "%s %s", event.type.value, event.object_id or ""
+                )
         for cb_func, event_filter, id_filter in self._listeners:
             if not (event_filter is None or event.type in event_filter):
                 continue
@@ -209,7 +211,6 @@ class MusicAssistant:
                 # create task from coroutine and attach task_done callback
                 next_job.timestamp = time()
                 next_job.status = JobStatus.RUNNING
-                self.logger.debug("Start processing job [%s].", next_job.name)
                 task = self.create_task(next_job.coro)
                 task.set_name(next_job.name)
                 task.add_done_callback(partial(self.__job_done_cb, job=next_job))
@@ -225,7 +226,6 @@ class MusicAssistant:
         job.timestamp = execution_time
         if task.cancelled():
             job.status = JobStatus.CANCELLED
-            self.logger.debug("Job [%s] is cancelled.", job.name)
         elif err := task.exception():
             job.status = JobStatus.ERROR
             self.logger.error(