From 289680b7bdb5e28d47e24610534fa64a356054d3 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Thu, 24 Oct 2024 18:55:19 +0200 Subject: [PATCH] small tweaks --- .../server/providers/builtin/__init__.py | 15 ++++++++++++++- .../server/providers/spotify/__init__.py | 15 +++++---------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/music_assistant/server/providers/builtin/__init__.py b/music_assistant/server/providers/builtin/__init__.py index 4b341ceb..e9583c2c 100644 --- a/music_assistant/server/providers/builtin/__init__.py +++ b/music_assistant/server/providers/builtin/__init__.py @@ -40,7 +40,7 @@ from music_assistant.common.models.media_items import ( UniqueList, ) from music_assistant.common.models.streamdetails import StreamDetails -from music_assistant.constants import MASS_LOGO, VARIOUS_ARTISTS_FANART +from music_assistant.constants import MASS_LOGO, RESOURCES_DIR, VARIOUS_ARTISTS_FANART from music_assistant.server.helpers.tags import AudioTags, parse_tags from music_assistant.server.models.music_provider import MusicProvider @@ -142,6 +142,19 @@ class BuiltinProvider(MusicProvider): if not await asyncio.to_thread(os.path.exists, self._playlists_dir): await asyncio.to_thread(os.mkdir, self._playlists_dir) await super().loaded_in_mass() + # migrate old image path + # TODO: remove this after 2.3+ release + old_path = ( + "/usr/local/lib/python3.12/site-packages/music_assistant/server/helpers/resources" + ) + new_path = str(RESOURCES_DIR) + query = ( + "UPDATE playlists SET metadata = " + f"REPLACE (metadata, '{old_path}', '{new_path}') " + f"WHERE playlists.metadata LIKE '%{old_path}%'" + ) + await self.mass.music.database.execute(query) + await self.mass.music.database.commit() @property def is_streaming_provider(self) -> bool: diff --git a/music_assistant/server/providers/spotify/__init__.py b/music_assistant/server/providers/spotify/__init__.py index df6b06e5..a3128e56 100644 --- a/music_assistant/server/providers/spotify/__init__.py +++ b/music_assistant/server/providers/spotify/__init__.py @@ -538,13 +538,8 @@ class SpotifyProvider(MusicProvider): async def get_stream_details(self, item_id: str) -> StreamDetails: """Return the content details for the given track when it will be streamed.""" - # fetch full track details - # this will also check if the track is available for streaming - # and use spotify's track linking feature to serve a substitute track - # if the original track is not available - track = await self.get_track(item_id) return StreamDetails( - item_id=track.item_id, + item_id=item_id, provider=self.instance_id, audio_format=AudioFormat( content_type=ContentType.OGG, @@ -906,7 +901,7 @@ class SpotifyProvider(MusicProvider): # so it will be retried (and the token refreshed) if response.status == 401: self._auth_info = None - raise ResourceTemporarilyUnavailable("Token expired", backoff_time=0.1) + raise ResourceTemporarilyUnavailable("Token expired", backoff_time=0.05) # handle 404 not found, convert to MediaNotFoundError if response.status == 404: @@ -933,7 +928,7 @@ class SpotifyProvider(MusicProvider): # so it will be retried (and the token refreshed) if response.status == 401: self._auth_info = None - raise ResourceTemporarilyUnavailable("Token expired", backoff_time=0.1) + raise ResourceTemporarilyUnavailable("Token expired", backoff_time=0.05) # handle temporary server error if response.status in (502, 503): raise ResourceTemporarilyUnavailable(backoff_time=30) @@ -958,7 +953,7 @@ class SpotifyProvider(MusicProvider): # so it will be retried (and the token refreshed) if response.status == 401: self._auth_info = None - raise ResourceTemporarilyUnavailable("Token expired", backoff_time=0.1) + raise ResourceTemporarilyUnavailable("Token expired", backoff_time=0.05) # handle temporary server error if response.status in (502, 503): @@ -984,7 +979,7 @@ class SpotifyProvider(MusicProvider): # so it will be retried (and the token refreshed) if response.status == 401: self._auth_info = None - raise ResourceTemporarilyUnavailable("Token expired", backoff_time=0.1) + raise ResourceTemporarilyUnavailable("Token expired", backoff_time=0.05) # handle temporary server error if response.status in (502, 503): raise ResourceTemporarilyUnavailable(backoff_time=30) -- 2.34.1