Home Assistant Unofficial Reference 2024.12.1
browse_media.py
Go to the documentation of this file.
1 """Support for media browsing."""
2 
3 from typing import Any
4 
5 from homeassistant.components.media_player import BrowseMedia, MediaClass, MediaType
6 
7 
8 def build_app_list(app_list: dict[str, str]) -> BrowseMedia:
9  """Create response payload for app list."""
10  media_list = [
11  {"app_id": app_id, "title": app_name, "type": MediaType.APP}
12  for app_name, app_id in app_list.items()
13  ]
14 
15  return BrowseMedia(
16  media_class=MediaClass.DIRECTORY,
17  media_content_id="apps",
18  media_content_type=MediaType.APPS,
19  title="Apps",
20  can_play=False,
21  can_expand=True,
22  children=[item_payload(item) for item in media_list],
23  children_media_class=MediaClass.APP,
24  )
25 
26 
27 def item_payload(item: dict[str, Any]) -> BrowseMedia:
28  """Create response payload for a single media item.
29 
30  Used by async_browse_media.
31  """
32  return BrowseMedia(
33  title=item["title"],
34  media_class=MediaClass.APP,
35  media_content_type=MediaType.APP,
36  media_content_id=item["app_id"],
37  can_play=False,
38  can_expand=False,
39  )
BrowseMedia build_app_list(dict[str, str] app_list)
Definition: browse_media.py:8
BrowseMedia item_payload(dict[str, Any] item)
Definition: browse_media.py:27