mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 18:57:06 +00:00
Add children media class to children spotify media browser (#39953)
This commit is contained in:
parent
ee6945d63d
commit
fbf0e69558
@ -105,24 +105,57 @@ LIBRARY_MAP = {
|
||||
}
|
||||
|
||||
CONTENT_TYPE_MEDIA_CLASS = {
|
||||
"current_user_playlists": MEDIA_CLASS_DIRECTORY,
|
||||
"current_user_followed_artists": MEDIA_CLASS_DIRECTORY,
|
||||
"current_user_saved_albums": MEDIA_CLASS_DIRECTORY,
|
||||
"current_user_saved_tracks": MEDIA_CLASS_DIRECTORY,
|
||||
"current_user_saved_shows": MEDIA_CLASS_DIRECTORY,
|
||||
"current_user_recently_played": MEDIA_CLASS_DIRECTORY,
|
||||
"current_user_top_artists": MEDIA_CLASS_DIRECTORY,
|
||||
"current_user_top_tracks": MEDIA_CLASS_DIRECTORY,
|
||||
"featured_playlists": MEDIA_CLASS_DIRECTORY,
|
||||
"categories": MEDIA_CLASS_DIRECTORY,
|
||||
"category_playlists": MEDIA_CLASS_DIRECTORY,
|
||||
"new_releases": MEDIA_CLASS_DIRECTORY,
|
||||
MEDIA_TYPE_PLAYLIST: MEDIA_CLASS_PLAYLIST,
|
||||
MEDIA_TYPE_ALBUM: MEDIA_CLASS_ALBUM,
|
||||
MEDIA_TYPE_ARTIST: MEDIA_CLASS_ARTIST,
|
||||
MEDIA_TYPE_EPISODE: MEDIA_CLASS_EPISODE,
|
||||
MEDIA_TYPE_SHOW: MEDIA_CLASS_PODCAST,
|
||||
MEDIA_TYPE_TRACK: MEDIA_CLASS_TRACK,
|
||||
"current_user_playlists": {
|
||||
"parent": MEDIA_CLASS_DIRECTORY,
|
||||
"children": MEDIA_CLASS_PLAYLIST,
|
||||
},
|
||||
"current_user_followed_artists": {
|
||||
"parent": MEDIA_CLASS_DIRECTORY,
|
||||
"children": MEDIA_CLASS_ARTIST,
|
||||
},
|
||||
"current_user_saved_albums": {
|
||||
"parent": MEDIA_CLASS_DIRECTORY,
|
||||
"children": MEDIA_CLASS_ALBUM,
|
||||
},
|
||||
"current_user_saved_tracks": {
|
||||
"parent": MEDIA_CLASS_DIRECTORY,
|
||||
"children": MEDIA_CLASS_TRACK,
|
||||
},
|
||||
"current_user_saved_shows": {
|
||||
"parent": MEDIA_CLASS_DIRECTORY,
|
||||
"children": MEDIA_CLASS_PODCAST,
|
||||
},
|
||||
"current_user_recently_played": {
|
||||
"parent": MEDIA_CLASS_DIRECTORY,
|
||||
"children": MEDIA_CLASS_TRACK,
|
||||
},
|
||||
"current_user_top_artists": {
|
||||
"parent": MEDIA_CLASS_DIRECTORY,
|
||||
"children": MEDIA_CLASS_ARTIST,
|
||||
},
|
||||
"current_user_top_tracks": {
|
||||
"parent": MEDIA_CLASS_DIRECTORY,
|
||||
"children": MEDIA_CLASS_TRACK,
|
||||
},
|
||||
"featured_playlists": {
|
||||
"parent": MEDIA_CLASS_DIRECTORY,
|
||||
"children": MEDIA_CLASS_PLAYLIST,
|
||||
},
|
||||
"categories": {"parent": MEDIA_CLASS_DIRECTORY, "children": MEDIA_CLASS_GENRE},
|
||||
"category_playlists": {
|
||||
"parent": MEDIA_CLASS_DIRECTORY,
|
||||
"children": MEDIA_CLASS_PLAYLIST,
|
||||
},
|
||||
"new_releases": {"parent": MEDIA_CLASS_DIRECTORY, "children": MEDIA_CLASS_ALBUM},
|
||||
MEDIA_TYPE_PLAYLIST: {
|
||||
"parent": MEDIA_CLASS_PLAYLIST,
|
||||
"children": MEDIA_CLASS_TRACK,
|
||||
},
|
||||
MEDIA_TYPE_ALBUM: {"parent": MEDIA_CLASS_ALBUM, "children": MEDIA_CLASS_TRACK},
|
||||
MEDIA_TYPE_ARTIST: {"parent": MEDIA_CLASS_ARTIST, "children": MEDIA_CLASS_ALBUM},
|
||||
MEDIA_TYPE_EPISODE: {"parent": MEDIA_CLASS_EPISODE, "children": None},
|
||||
MEDIA_TYPE_SHOW: {"parent": MEDIA_CLASS_PODCAST, "children": MEDIA_CLASS_EPISODE},
|
||||
MEDIA_TYPE_TRACK: {"parent": MEDIA_CLASS_TRACK, "children": None},
|
||||
}
|
||||
|
||||
|
||||
@ -543,7 +576,8 @@ def build_item_response(spotify, user, payload):
|
||||
if media_content_type == "categories":
|
||||
media_item = BrowseMedia(
|
||||
title=LIBRARY_MAP.get(media_content_id),
|
||||
media_class=media_class,
|
||||
media_class=media_class["parent"],
|
||||
children_media_class=media_class["children"],
|
||||
media_content_id=media_content_id,
|
||||
media_content_type=media_content_type,
|
||||
can_play=False,
|
||||
@ -560,6 +594,7 @@ def build_item_response(spotify, user, payload):
|
||||
BrowseMedia(
|
||||
title=item.get("name"),
|
||||
media_class=MEDIA_CLASS_PLAYLIST,
|
||||
children_media_class=MEDIA_CLASS_TRACK,
|
||||
media_content_id=item_id,
|
||||
media_content_type="category_playlists",
|
||||
thumbnail=fetch_image_url(item, key="icons"),
|
||||
@ -567,7 +602,6 @@ def build_item_response(spotify, user, payload):
|
||||
can_expand=True,
|
||||
)
|
||||
)
|
||||
media_item.children_media_class = MEDIA_CLASS_GENRE
|
||||
return media_item
|
||||
|
||||
if title is None:
|
||||
@ -578,7 +612,8 @@ def build_item_response(spotify, user, payload):
|
||||
|
||||
params = {
|
||||
"title": title,
|
||||
"media_class": media_class,
|
||||
"media_class": media_class["parent"],
|
||||
"children_media_class": media_class["children"],
|
||||
"media_content_id": media_content_id,
|
||||
"media_content_type": media_content_type,
|
||||
"can_play": media_content_type in PLAYABLE_MEDIA_TYPES,
|
||||
@ -625,7 +660,8 @@ def item_payload(item):
|
||||
|
||||
payload = {
|
||||
"title": item.get("name"),
|
||||
"media_class": media_class,
|
||||
"media_class": media_class["parent"],
|
||||
"children_media_class": media_class["children"],
|
||||
"media_content_id": media_id,
|
||||
"media_content_type": media_type,
|
||||
"can_play": media_type in PLAYABLE_MEDIA_TYPES,
|
||||
|
Loading…
x
Reference in New Issue
Block a user