From df2fd3d365ebb1a128bab7770379e0988960f0fe Mon Sep 17 00:00:00 2001 From: Eric Munson Date: Wed, 12 Jun 2024 13:41:12 -0400 Subject: [PATCH] Subsonic: Extend favorites to tracks, and podcast channels and episodes (#1352) These all support or will support starring (in subsonic, favoriting in MA) so this commit extends those stars to favorites. Signed-off-by: Eric B Munson --- music_assistant/server/providers/opensubsonic/manifest.json | 2 +- .../server/providers/opensubsonic/sonic_provider.py | 4 ++++ requirements_all.txt | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/music_assistant/server/providers/opensubsonic/manifest.json b/music_assistant/server/providers/opensubsonic/manifest.json index a0df0083..b5096b59 100644 --- a/music_assistant/server/providers/opensubsonic/manifest.json +++ b/music_assistant/server/providers/opensubsonic/manifest.json @@ -7,7 +7,7 @@ "@khers" ], "requirements": [ - "py-opensonic==5.0.5" + "py-opensonic==5.1.0" ], "documentation": "https://music-assistant.io/music-providers/subsonic/", "multi_instance": true diff --git a/music_assistant/server/providers/opensubsonic/sonic_provider.py b/music_assistant/server/providers/opensubsonic/sonic_provider.py index f2ad873e..9d1d0a96 100644 --- a/music_assistant/server/providers/opensubsonic/sonic_provider.py +++ b/music_assistant/server/providers/opensubsonic/sonic_provider.py @@ -165,6 +165,7 @@ class OpenSonicProvider(MusicProvider): item_id=sonic_channel.id, name=sonic_channel.title, provider=self.instance_id, + favorite=bool(sonic_channel.starred), provider_mappings={ ProviderMapping( item_id=sonic_channel.id, @@ -212,6 +213,7 @@ class OpenSonicProvider(MusicProvider): album=self._parse_podcast_album(sonic_channel=sonic_channel), artists=[self._parse_podcast_artist(sonic_channel=sonic_channel)], duration=sonic_episode.duration if sonic_episode.duration is not None else 0, + favorite=bool(sonic_episode.starred), provider_mappings={ ProviderMapping( item_id=sonic_episode.id, @@ -363,6 +365,7 @@ class OpenSonicProvider(MusicProvider): # a Open Subsonic Song is not yet set and the implementations I have checked # do not contain this field. We should revisit this when the spec is finished disc_number=0, + favorite=bool(sonic_song.starred), provider_mappings={ ProviderMapping( item_id=sonic_song.id, @@ -419,6 +422,7 @@ class OpenSonicProvider(MusicProvider): provider=self.domain, name=sonic_playlist.name, is_editable=True, + favorite=bool(sonic_playlist.starred), provider_mappings={ ProviderMapping( item_id=sonic_playlist.id, diff --git a/requirements_all.txt b/requirements_all.txt index 0ac9b507..ae491270 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -26,7 +26,7 @@ music-assistant-frontend==2.5.12 orjson==3.10.4 pillow==10.3.0 plexapi==4.15.13 -py-opensonic==5.0.5 +py-opensonic==5.1.0 PyChromecast==14.0.1 pycryptodome==3.20.0 python-fullykiosk==0.0.12 -- 2.34.1