Skip to content

Commit 8ceecec

Browse files
authored
Bump spotifyaio to 0.7.1 (#128807)
1 parent 28ff138 commit 8ceecec

File tree

7 files changed

+49
-47
lines changed

7 files changed

+49
-47
lines changed

homeassistant/components/spotify/browse_media.py

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,6 @@ async def async_browse_media(
253253
result = await async_browse_media_internal(
254254
hass,
255255
info.coordinator.client,
256-
info.coordinator.current_user,
257256
media_content_type,
258257
media_content_id,
259258
can_play_artist=can_play_artist,
@@ -270,7 +269,6 @@ async def async_browse_media(
270269
async def async_browse_media_internal(
271270
hass: HomeAssistant,
272271
spotify: SpotifyClient,
273-
current_user: dict[str, Any],
274272
media_content_type: str | None,
275273
media_content_id: str | None,
276274
*,
@@ -290,7 +288,6 @@ async def async_browse_media_internal(
290288
}
291289
response = await build_item_response(
292290
spotify,
293-
current_user,
294291
payload,
295292
can_play_artist=can_play_artist,
296293
)
@@ -301,7 +298,6 @@ async def async_browse_media_internal(
301298

302299
async def build_item_response( # noqa: C901
303300
spotify: SpotifyClient,
304-
user: dict[str, Any],
305301
payload: dict[str, str | None],
306302
*,
307303
can_play_artist: bool,
@@ -330,12 +326,13 @@ async def build_item_response( # noqa: C901
330326
for saved_album in saved_albums
331327
]
332328
elif media_content_type == BrowsableMedia.CURRENT_USER_SAVED_TRACKS:
333-
if media := await spotify.get_saved_tracks():
329+
if saved_tracks := await spotify.get_saved_tracks():
334330
items = [
335-
_get_track_item_payload(saved_track.track) for saved_track in media
331+
_get_track_item_payload(saved_track.track)
332+
for saved_track in saved_tracks
336333
]
337334
elif media_content_type == BrowsableMedia.CURRENT_USER_SAVED_SHOWS:
338-
if media := await spotify.get_saved_shows():
335+
if saved_shows := await spotify.get_saved_shows():
339336
items = [
340337
{
341338
"id": saved_show.show.show_id,
@@ -344,22 +341,26 @@ async def build_item_response( # noqa: C901
344341
"uri": saved_show.show.uri,
345342
"thumbnail": fetch_image_url(saved_show.show.images),
346343
}
347-
for saved_show in media
344+
for saved_show in saved_shows
348345
]
349346
elif media_content_type == BrowsableMedia.CURRENT_USER_RECENTLY_PLAYED:
350-
if media := await spotify.get_recently_played_tracks():
351-
items = [_get_track_item_payload(item.track) for item in media]
347+
if recently_played_tracks := await spotify.get_recently_played_tracks():
348+
items = [
349+
_get_track_item_payload(item.track) for item in recently_played_tracks
350+
]
352351
elif media_content_type == BrowsableMedia.CURRENT_USER_TOP_ARTISTS:
353-
if media := await spotify.get_top_artists():
354-
items = [_get_artist_item_payload(artist) for artist in media]
352+
if top_artists := await spotify.get_top_artists():
353+
items = [_get_artist_item_payload(artist) for artist in top_artists]
355354
elif media_content_type == BrowsableMedia.CURRENT_USER_TOP_TRACKS:
356-
if media := await spotify.get_top_tracks():
357-
items = [_get_track_item_payload(track) for track in media]
355+
if top_tracks := await spotify.get_top_tracks():
356+
items = [_get_track_item_payload(track) for track in top_tracks]
358357
elif media_content_type == BrowsableMedia.FEATURED_PLAYLISTS:
359-
if media := await spotify.get_featured_playlists():
360-
items = [_get_playlist_item_payload(playlist) for playlist in media]
358+
if featured_playlists := await spotify.get_featured_playlists():
359+
items = [
360+
_get_playlist_item_payload(playlist) for playlist in featured_playlists
361+
]
361362
elif media_content_type == BrowsableMedia.CATEGORIES:
362-
if media := await spotify.get_categories():
363+
if categories := await spotify.get_categories():
363364
items = [
364365
{
365366
"id": category.category_id,
@@ -368,43 +369,45 @@ async def build_item_response( # noqa: C901
368369
"uri": category.category_id,
369370
"thumbnail": category.icons[0].url if category.icons else None,
370371
}
371-
for category in media
372+
for category in categories
372373
]
373374
elif media_content_type == "category_playlists":
374375
if (
375-
media := await spotify.get_category_playlists(category_id=media_content_id)
376+
playlists := await spotify.get_category_playlists(
377+
category_id=media_content_id
378+
)
376379
) and (category := await spotify.get_category(media_content_id)):
377380
title = category.name
378381
image = category.icons[0].url if category.icons else None
379-
items = [_get_playlist_item_payload(playlist) for playlist in media]
382+
items = [_get_playlist_item_payload(playlist) for playlist in playlists]
380383
elif media_content_type == BrowsableMedia.NEW_RELEASES:
381-
if media := await spotify.get_new_releases():
382-
items = [_get_album_item_payload(album) for album in media]
384+
if new_releases := await spotify.get_new_releases():
385+
items = [_get_album_item_payload(album) for album in new_releases]
383386
elif media_content_type == MediaType.PLAYLIST:
384-
if media := await spotify.get_playlist(media_content_id):
385-
title = media.name
386-
image = media.images[0].url if media.images else None
387+
if playlist := await spotify.get_playlist(media_content_id):
388+
title = playlist.name
389+
image = playlist.images[0].url if playlist.images else None
387390
items = [
388391
_get_track_item_payload(playlist_track.track)
389-
for playlist_track in media.tracks.items
392+
for playlist_track in playlist.tracks.items
390393
]
391394
elif media_content_type == MediaType.ALBUM:
392-
if media := await spotify.get_album(media_content_id):
393-
title = media.name
394-
image = media.images[0].url if media.images else None
395+
if album := await spotify.get_album(media_content_id):
396+
title = album.name
397+
image = album.images[0].url if album.images else None
395398
items = [
396399
_get_track_item_payload(track, show_thumbnails=False)
397-
for track in media.tracks
400+
for track in album.tracks
398401
]
399402
elif media_content_type == MediaType.ARTIST:
400-
if (media := await spotify.get_artist_albums(media_content_id)) and (
403+
if (artist_albums := await spotify.get_artist_albums(media_content_id)) and (
401404
artist := await spotify.get_artist(media_content_id)
402405
):
403406
title = artist.name
404407
image = artist.images[0].url if artist.images else None
405-
items = [_get_album_item_payload(album) for album in media]
408+
items = [_get_album_item_payload(album) for album in artist_albums]
406409
elif media_content_type == MEDIA_TYPE_SHOW:
407-
if (media := await spotify.get_show_episodes(media_content_id)) and (
410+
if (show_episodes := await spotify.get_show_episodes(media_content_id)) and (
408411
show := await spotify.get_show(media_content_id)
409412
):
410413
title = show.name
@@ -417,7 +420,7 @@ async def build_item_response( # noqa: C901
417420
"uri": episode.uri,
418421
"thumbnail": fetch_image_url(episode.images),
419422
}
420-
for episode in media
423+
for episode in show_episodes
421424
]
422425

423426
try:

homeassistant/components/spotify/coordinator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
import logging
66

77
from spotifyaio import (
8+
ContextType,
89
PlaybackState,
910
Playlist,
1011
SpotifyClient,
1112
SpotifyConnectionError,
1213
UserProfile,
1314
)
1415

15-
from homeassistant.components.media_player import MediaType
1616
from homeassistant.core import HomeAssistant
1717
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
1818
import homeassistant.util.dt as dt_util
@@ -77,7 +77,7 @@ async def _async_update_data(self) -> SpotifyCoordinatorData:
7777
self._playlist = None
7878
if context.uri == SPOTIFY_DJ_PLAYLIST_URI:
7979
dj_playlist = True
80-
elif context.context_type == MediaType.PLAYLIST:
80+
elif context.context_type == ContextType.PLAYLIST:
8181
# Make sure any playlist lookups don't break the current
8282
# playback state update
8383
try:

homeassistant/components/spotify/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99
"iot_class": "cloud_polling",
1010
"loggers": ["spotipy"],
1111
"quality_scale": "silver",
12-
"requirements": ["spotifyaio==0.7.0"],
12+
"requirements": ["spotifyaio==0.7.1"],
1313
"zeroconf": ["_spotify-connect._tcp.local."]
1414
}

homeassistant/components/spotify/media_player.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,20 +169,20 @@ def media_content_id(self, item: Item) -> str: # noqa: PLR0206
169169
@ensure_item
170170
def media_content_type(self, item: Item) -> str: # noqa: PLR0206
171171
"""Return the media type."""
172-
return MediaType.PODCAST if item.type == MediaType.EPISODE else MediaType.MUSIC
172+
return MediaType.PODCAST if item.type == ItemType.EPISODE else MediaType.MUSIC
173173

174174
@property
175175
@ensure_item
176176
def media_duration(self, item: Item) -> int: # noqa: PLR0206
177177
"""Duration of current playing media in seconds."""
178-
return item.duration_ms / 1000
178+
return round(item.duration_ms / 1000)
179179

180180
@property
181181
def media_position(self) -> int | None:
182182
"""Position of current playing media in seconds."""
183183
if not self.currently_playing or self.currently_playing.progress_ms is None:
184184
return None
185-
return self.currently_playing.progress_ms / 1000
185+
return round(self.currently_playing.progress_ms / 1000)
186186

187187
@property
188188
def media_position_updated_at(self) -> dt.datetime | None:
@@ -380,7 +380,6 @@ async def async_browse_media(
380380
return await async_browse_media_internal(
381381
self.hass,
382382
self.coordinator.client,
383-
self.coordinator.current_user,
384383
media_content_type,
385384
media_content_id,
386385
)

requirements_all.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2700,7 +2700,7 @@ speak2mary==1.4.0
27002700
speedtest-cli==2.1.3
27012701

27022702
# homeassistant.components.spotify
2703-
spotifyaio==0.7.0
2703+
spotifyaio==0.7.1
27042704

27052705
# homeassistant.components.sql
27062706
sqlparse==0.5.0

requirements_test_all.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2146,7 +2146,7 @@ speak2mary==1.4.0
21462146
speedtest-cli==2.1.3
21472147

21482148
# homeassistant.components.spotify
2149-
spotifyaio==0.7.0
2149+
spotifyaio==0.7.1
21502150

21512151
# homeassistant.components.sql
21522152
sqlparse==0.5.0

tests/components/spotify/snapshots/test_media_player.ambr

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
'media_artist': 'Rush',
4646
'media_content_id': 'spotify:track:4e9hUiLsN4mx61ARosFi7p',
4747
'media_content_type': <MediaType.MUSIC: 'music'>,
48-
'media_duration': 296.466,
48+
'media_duration': 296,
4949
'media_playlist': 'Spotify Web API Testing playlist',
50-
'media_position': 249.367,
50+
'media_position': 249,
5151
'media_position_updated_at': HAFakeDatetime(2023, 10, 21, 0, 0, tzinfo=datetime.timezone.utc),
5252
'media_title': 'The Spirit Of Radio',
5353
'media_track': 1,
@@ -114,8 +114,8 @@
114114
'media_artist': 'Safety Third ',
115115
'media_content_id': 'spotify:episode:3o0RYoo5iOMKSmEbunsbvW',
116116
'media_content_type': <MediaType.PODCAST: 'podcast'>,
117-
'media_duration': 3690.161,
118-
'media_position': 5.41,
117+
'media_duration': 3690,
118+
'media_position': 5,
119119
'media_position_updated_at': HAFakeDatetime(2023, 10, 21, 0, 0, tzinfo=datetime.timezone.utc),
120120
'media_title': 'My Squirrel Has Brain Damage - Safety Third 119',
121121
'repeat': <RepeatMode.OFF: 'off'>,

0 commit comments

Comments
 (0)