/
/
/
1"""Helpers for HEOS Player Provider."""
2
3from typing import TYPE_CHECKING
4from urllib.parse import urlencode
5
6from pyheos.util.mediauri import BASE_URI
7
8if TYPE_CHECKING:
9 from pyheos import HeosNowPlayingMedia
10
11
12def media_uri_from_now_playing_media(now_playing_media: HeosNowPlayingMedia) -> str:
13 """Generate a media URI based on available data in now playing media."""
14 base_uri = f"{BASE_URI}/{now_playing_media.source_id}/{now_playing_media.type}"
15
16 params: dict[str, str] = {}
17
18 if now_playing_media.song:
19 params["song"] = now_playing_media.song
20 if now_playing_media.station:
21 params["station"] = now_playing_media.station
22 if now_playing_media.album:
23 params["album"] = now_playing_media.album
24 if now_playing_media.artist:
25 params["artist"] = now_playing_media.artist
26 if now_playing_media.image_url:
27 params["image_url"] = now_playing_media.image_url
28 if now_playing_media.album_id:
29 params["album_id"] = now_playing_media.album_id
30 if now_playing_media.media_id:
31 params["media_id"] = now_playing_media.media_id
32 if now_playing_media.queue_id:
33 params["queue_id"] = str(now_playing_media.queue_id)
34
35 return f"{base_uri}?{urlencode(params)}"
36