1 """Expose images as media sources."""
3 from __future__
import annotations
5 from typing
import cast
18 from .const
import DATA_COMPONENT, DOMAIN
22 """Set up image media source."""
27 """Provide images as media sources."""
31 def __init__(self, hass: HomeAssistant) ->
None:
32 """Initialize ImageMediaSource."""
37 """Resolve media to a url."""
38 image = self.
hasshass.data[DATA_COMPONENT].
get_entity(item.identifier)
41 raise Unresolvable(f
"Could not resolve media item: {item.identifier}")
44 f
"/api/image_proxy_stream/{image.entity_id}", image.content_type
49 item: MediaSourceItem,
50 ) -> BrowseMediaSource:
53 raise BrowseError(
"Unknown item")
58 identifier=image.entity_id,
59 media_class=MediaClass.VIDEO,
60 media_content_type=image.content_type,
61 title=cast(State, self.
hasshass.states.get(image.entity_id)).attributes.get(
62 ATTR_FRIENDLY_NAME, image.name
64 thumbnail=f
"/api/image_proxy/{image.entity_id}",
68 for image
in self.
hasshass.data[DATA_COMPONENT].entities
71 return BrowseMediaSource(
74 media_class=MediaClass.APP,
75 media_content_type=
"",
79 children_media_class=MediaClass.IMAGE,
CalendarEntity get_entity(HomeAssistant hass, str entity_id)