mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Bump Music Assistant client to 1.1.1 (#139331)
This commit is contained in:
parent
b676c2f61b
commit
bb9aba2a7d
@ -48,6 +48,7 @@ from .schemas import (
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from music_assistant_client import MusicAssistantClient
|
||||
from music_assistant_models.media_items import Album, Artist, Playlist, Radio, Track
|
||||
|
||||
from . import MusicAssistantConfigEntry
|
||||
|
||||
@ -173,6 +174,9 @@ async def handle_get_library(call: ServiceCall) -> ServiceResponse:
|
||||
"offset": offset,
|
||||
"order_by": order_by,
|
||||
}
|
||||
library_result: (
|
||||
list[Album] | list[Artist] | list[Track] | list[Radio] | list[Playlist]
|
||||
)
|
||||
if media_type == MediaType.ALBUM:
|
||||
library_result = await mass.music.get_library_albums(
|
||||
**base_params,
|
||||
@ -181,7 +185,7 @@ async def handle_get_library(call: ServiceCall) -> ServiceResponse:
|
||||
elif media_type == MediaType.ARTIST:
|
||||
library_result = await mass.music.get_library_artists(
|
||||
**base_params,
|
||||
album_artists_only=call.data.get(ATTR_ALBUM_ARTISTS_ONLY),
|
||||
album_artists_only=bool(call.data.get(ATTR_ALBUM_ARTISTS_ONLY)),
|
||||
)
|
||||
elif media_type == MediaType.TRACK:
|
||||
library_result = await mass.music.get_library_tracks(
|
||||
|
@ -7,6 +7,6 @@
|
||||
"documentation": "https://www.home-assistant.io/integrations/music_assistant",
|
||||
"iot_class": "local_push",
|
||||
"loggers": ["music_assistant"],
|
||||
"requirements": ["music-assistant-client==1.0.8"],
|
||||
"requirements": ["music-assistant-client==1.1.1"],
|
||||
"zeroconf": ["_mass._tcp.local."]
|
||||
}
|
||||
|
@ -166,6 +166,8 @@ async def build_playlist_items_listing(
|
||||
) -> BrowseMedia:
|
||||
"""Build Playlist items browse listing."""
|
||||
playlist = await mass.music.get_item_by_uri(identifier)
|
||||
if TYPE_CHECKING:
|
||||
assert playlist.uri is not None
|
||||
|
||||
return BrowseMedia(
|
||||
media_class=MediaClass.PLAYLIST,
|
||||
@ -219,6 +221,9 @@ async def build_artist_items_listing(
|
||||
artist = await mass.music.get_item_by_uri(identifier)
|
||||
albums = await mass.music.get_artist_albums(artist.item_id, artist.provider)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
assert artist.uri is not None
|
||||
|
||||
return BrowseMedia(
|
||||
media_class=MediaType.ARTIST,
|
||||
media_content_id=artist.uri,
|
||||
@ -267,6 +272,9 @@ async def build_album_items_listing(
|
||||
album = await mass.music.get_item_by_uri(identifier)
|
||||
tracks = await mass.music.get_album_tracks(album.item_id, album.provider)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
assert album.uri is not None
|
||||
|
||||
return BrowseMedia(
|
||||
media_class=MediaType.ALBUM,
|
||||
media_content_id=album.uri,
|
||||
@ -340,6 +348,9 @@ def build_item(
|
||||
title = item.name
|
||||
img_url = mass.get_media_item_image_url(item)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
assert item.uri is not None
|
||||
|
||||
return BrowseMedia(
|
||||
media_class=media_class or item.media_type.value,
|
||||
media_content_id=item.uri,
|
||||
|
@ -20,6 +20,7 @@ from music_assistant_models.enums import (
|
||||
from music_assistant_models.errors import MediaNotFoundError, MusicAssistantError
|
||||
from music_assistant_models.event import MassEvent
|
||||
from music_assistant_models.media_items import ItemMapping, MediaItemType, Track
|
||||
from music_assistant_models.player_queue import PlayerQueue
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.components import media_source
|
||||
@ -78,7 +79,6 @@ from .schemas import QUEUE_DETAILS_SCHEMA, queue_item_dict_from_mass_item
|
||||
if TYPE_CHECKING:
|
||||
from music_assistant_client import MusicAssistantClient
|
||||
from music_assistant_models.player import Player
|
||||
from music_assistant_models.player_queue import PlayerQueue
|
||||
|
||||
SUPPORTED_FEATURES = (
|
||||
MediaPlayerEntityFeature.PAUSE
|
||||
@ -473,6 +473,8 @@ class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
|
||||
album=album,
|
||||
media_type=MediaType(media_type) if media_type else None,
|
||||
):
|
||||
if TYPE_CHECKING:
|
||||
assert item.uri is not None
|
||||
media_uris.append(item.uri)
|
||||
|
||||
if not media_uris:
|
||||
|
@ -65,20 +65,20 @@ MEDIA_ITEM_SCHEMA = vol.Schema(
|
||||
|
||||
def media_item_dict_from_mass_item(
|
||||
mass: MusicAssistantClient,
|
||||
item: MediaItemType | ItemMapping | None,
|
||||
) -> dict[str, Any] | None:
|
||||
item: MediaItemType | ItemMapping,
|
||||
) -> dict[str, Any]:
|
||||
"""Parse a Music Assistant MediaItem."""
|
||||
if not item:
|
||||
return None
|
||||
base = {
|
||||
base: dict[str, Any] = {
|
||||
ATTR_MEDIA_TYPE: item.media_type,
|
||||
ATTR_URI: item.uri,
|
||||
ATTR_NAME: item.name,
|
||||
ATTR_VERSION: item.version,
|
||||
ATTR_IMAGE: mass.get_media_item_image_url(item),
|
||||
}
|
||||
artists: list[ItemMapping] | None
|
||||
if artists := getattr(item, "artists", None):
|
||||
base[ATTR_ARTISTS] = [media_item_dict_from_mass_item(mass, x) for x in artists]
|
||||
album: ItemMapping | None
|
||||
if album := getattr(item, "album", None):
|
||||
base[ATTR_ALBUM] = media_item_dict_from_mass_item(mass, album)
|
||||
return base
|
||||
@ -151,7 +151,11 @@ def queue_item_dict_from_mass_item(
|
||||
ATTR_QUEUE_ITEM_ID: item.queue_item_id,
|
||||
ATTR_NAME: item.name,
|
||||
ATTR_DURATION: item.duration,
|
||||
ATTR_MEDIA_ITEM: media_item_dict_from_mass_item(mass, item.media_item),
|
||||
ATTR_MEDIA_ITEM: (
|
||||
media_item_dict_from_mass_item(mass, item.media_item)
|
||||
if item.media_item
|
||||
else None
|
||||
),
|
||||
}
|
||||
if streamdetails := item.streamdetails:
|
||||
base[ATTR_STREAM_TITLE] = streamdetails.stream_title
|
||||
|
2
requirements_all.txt
generated
2
requirements_all.txt
generated
@ -1447,7 +1447,7 @@ mozart-api==4.1.1.116.4
|
||||
mullvad-api==1.0.0
|
||||
|
||||
# homeassistant.components.music_assistant
|
||||
music-assistant-client==1.0.8
|
||||
music-assistant-client==1.1.1
|
||||
|
||||
# homeassistant.components.tts
|
||||
mutagen==1.47.0
|
||||
|
2
requirements_test_all.txt
generated
2
requirements_test_all.txt
generated
@ -1219,7 +1219,7 @@ mozart-api==4.1.1.116.4
|
||||
mullvad-api==1.0.0
|
||||
|
||||
# homeassistant.components.music_assistant
|
||||
music-assistant-client==1.0.8
|
||||
music-assistant-client==1.1.1
|
||||
|
||||
# homeassistant.components.tts
|
||||
mutagen==1.47.0
|
||||
|
Loading…
x
Reference in New Issue
Block a user