ContentType,
ItemMapping,
MediaItemImage,
+ MediaItemType,
Playlist,
ProviderMapping,
SearchResults,
from music_assistant.common.models.streamdetails import StreamDetails
from music_assistant.server.helpers.auth import AuthenticationHelper
from music_assistant.server.helpers.tags import AudioTags, parse_tags
-from music_assistant.server.helpers.throttle_retry import AsyncThrottleWithRetryContextManager
+from music_assistant.server.helpers.throttle_retry import (
+ AsyncThrottleWithRetryContextManager,
+)
from music_assistant.server.models.music_provider import MusicProvider
from .helpers import (
)
return [self._parse_track(track) for track in similar_tracks_obj]
- async def library_add(self, prov_item_id: str, media_type: MediaType) -> bool:
+ async def library_add(self, item: MediaItemType) -> bool:
"""Add item to library."""
tidal_session = await self._get_tidal_session()
return await library_items_add_remove(
tidal_session,
str(self._tidal_user_id),
- prov_item_id,
- media_type,
+ item.item_id,
+ item.media_type,
add=True,
)
MediaItemImage(
type=ImageType.THUMB,
path=image_url,
- provider=self.domain,
+ provider=self.instance_id,
+ remotely_accessible=True,
)
]
MediaItemImage(
type=ImageType.THUMB,
path=image_url,
- provider=self.domain,
+ provider=self.instance_id,
+ remotely_accessible=True,
)
]
provider_instance=self.instance_id,
audio_format=AudioFormat(
content_type=ContentType.FLAC,
- bit_depth=24 if self._is_hi_res(track_obj=track_obj) else 16,
+ bit_depth=24 if track_obj.is_HiRes else 16,
),
url=f"{BROWSE_URL}/track/{track_id}",
available=track_obj.available,
MediaItemImage(
type=ImageType.THUMB,
path=image_url,
- provider=self.domain,
+ provider=self.instance_id,
+ remotely_accessible=True,
)
]
return track
is_editable = bool(creator_id and str(creator_id) == self._tidal_user_id)
playlist.is_editable = is_editable
# metadata
- playlist.metadata.checksum = str(playlist_obj.last_updated)
+ playlist.metadata.cache_checksum = str(playlist_obj.last_updated)
playlist.metadata.popularity = playlist_obj.popularity
if picture := (playlist_obj.square_picture or playlist_obj.picture):
picture_id = picture.replace("-", "/")
MediaItemImage(
type=ImageType.THUMB,
path=image_url,
- provider=self.domain,
+ provider=self.instance_id,
+ remotely_accessible=True,
)
]
media_info = await parse_tags(url)
await self.mass.cache.set(cache_key, media_info.raw)
return media_info
-
- def _is_hi_res(self, track_obj: TidalTrack) -> bool:
- """Check if track is hi-res."""
- hi_res: bool = track_obj.audio_quality == "HI_RES"
- return hi_res