Subsonic: Extend favorites to tracks, and podcast channels and episodes (#1352)
authorEric Munson <eric@munsonfam.org>
Wed, 12 Jun 2024 17:41:12 +0000 (13:41 -0400)
committerGitHub <noreply@github.com>
Wed, 12 Jun 2024 17:41:12 +0000 (19:41 +0200)
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 <eric@munsonfam.org>
music_assistant/server/providers/opensubsonic/manifest.json
music_assistant/server/providers/opensubsonic/sonic_provider.py
requirements_all.txt

index a0df00837bb56efdce995564782dcbdec5c0a7cd..b5096b592540162f60e79aec44dff7960c6b5b8d 100644 (file)
@@ -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
index f2ad873e0a080d0e00158abe65f35ed3b3df4240..9d1d0a968a780e42dec1ee2385386da6d76528d4 100644 (file)
@@ -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,
index 0ac9b507a0fdf509f79dc6fa9a09013652f3d578..ae4912702c00e50d721750b666484f8de4790c10 100644 (file)
@@ -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