From: Marcel van der Veldt Date: Sun, 25 Aug 2024 23:55:54 +0000 (+0200) Subject: Small tweaks and fixes X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=3bbf781cae474f0986040b0e78265b16ac458119;p=music-assistant-server.git Small tweaks and fixes --- diff --git a/music_assistant/common/models/player_queue.py b/music_assistant/common/models/player_queue.py index 4684aeff..e2d6c881 100644 --- a/music_assistant/common/models/player_queue.py +++ b/music_assistant/common/models/player_queue.py @@ -42,7 +42,6 @@ class PlayerQueue(DataClassDictMixin): flow_mode_start_index: int = 0 stream_finished: bool | None = None end_of_track_reached: bool | None = None - queue_version: str = "" @property def corrected_elapsed_time(self) -> float: diff --git a/music_assistant/server/controllers/player_queues.py b/music_assistant/server/controllers/player_queues.py index 8c3a256d..4ba9d73d 100644 --- a/music_assistant/server/controllers/player_queues.py +++ b/music_assistant/server/controllers/player_queues.py @@ -8,8 +8,6 @@ import time from contextlib import suppress from typing import TYPE_CHECKING, Any, TypedDict -import shortuuid - from music_assistant.common.helpers.util import get_changed_keys from music_assistant.common.models.config_entries import ( ConfigEntry, @@ -698,7 +696,12 @@ class PlayerQueuesController(CoreController): queue = self._queues[queue_id] queue_items = self._queue_items[queue_id] resume_item = queue.current_item - resume_pos = queue.resume_pos + if queue.state == PlayerState.PLAYING: + # resume requested while already playing, + # use current position as resume position + resume_pos = queue.corrected_elapsed_time + else: + resume_pos = queue.resume_pos if not resume_item and queue.current_index is not None and len(queue_items) > 0: resume_item = self.get_item(queue_id, queue.current_index) @@ -935,7 +938,6 @@ class PlayerQueuesController(CoreController): if not queue.flow_mode or queue.stream_finished: self._check_enqueue_next(player, queue, prev_state, new_state) - queue.resume_pos = queue.corrected_elapsed_time # do not send full updates if only time was updated if changed_keys == {"elapsed_time"}: self.mass.signal_event( @@ -1092,7 +1094,6 @@ class PlayerQueuesController(CoreController): def signal_update(self, queue_id: str, items_changed: bool = False) -> None: """Signal state changed of given queue.""" queue = self._queues[queue_id] - queue.queue_version = shortuuid.random(8) if items_changed: self.mass.signal_event(EventType.QUEUE_ITEMS_UPDATED, object_id=queue_id, data=queue) # save items in cache diff --git a/music_assistant/server/helpers/util.py b/music_assistant/server/helpers/util.py index c6496db2..65b79ded 100644 --- a/music_assistant/server/helpers/util.py +++ b/music_assistant/server/helpers/util.py @@ -110,6 +110,9 @@ async def load_provider_module(domain: str, requirements: list[str]) -> Provider continue package_name, version = requirement.split("==", 1) installed_version = await get_package_version(package_name) + if installed_version == "0.0.0": + # ignore editable installs + continue if installed_version != version: await install_package(requirement)