Skip to content

Commit e31c1b2

Browse files
committed
Report playlist position for tracks
1 parent 20327c2 commit e31c1b2

3 files changed

Lines changed: 11 additions & 1 deletion

File tree

custom_components/mass_queue/actions.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
ATTR_MEDIA_TITLE,
3737
ATTR_OFFSET,
3838
ATTR_PLAYER_ENTITY,
39+
ATTR_POSITION,
3940
ATTR_PROVIDERS,
4041
ATTR_QUEUE_ID,
4142
ATTR_QUEUE_ITEM_ID,
@@ -409,7 +410,13 @@ async def get_playlist_tracks(self, playlist_uri: str, page: int | None = None):
409410
if not page
410411
else await self._client.music.get_playlist_tracks(item_id, provider, page)
411412
)
412-
return [self.format_track_item(item.to_dict()) for item in resp]
413+
return [self.format_playlist_track(item.to_dict()) for item in resp]
414+
415+
def format_playlist_track(self, playlist_track: dict) -> TRACK_ITEM_SCHEMA:
416+
"""Processes individual playlist tracks using format_track_item and adds position."""
417+
result = self.format_track_item(playlist_track)
418+
result[ATTR_POSITION] = playlist_track["position"]
419+
return result
413420

414421
def format_track_item(self, playlist_item: dict) -> TRACK_ITEM_SCHEMA:
415422
"""Processes the individual items in a playlist."""

custom_components/mass_queue/const.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
ATTR_PAGE = "page"
4747
ATTR_PLAYER_ENTITY = "entity"
4848
ATTR_URI = "uri"
49+
ATTR_POSITION = "position"
4950
ATTR_PROVIDERS = "providers"
5051
ATTR_QUEUE_ID = "active_queue"
5152
ATTR_QUEUE_ITEM_ID = "queue_item_id"

custom_components/mass_queue/schemas.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
ATTR_OFFSET,
2424
ATTR_PAGE,
2525
ATTR_PLAYER_ENTITY,
26+
ATTR_POSITION,
2627
ATTR_PROVIDERS,
2728
ATTR_QUEUE_ITEM_ID,
2829
ATTR_QUEUE_ITEMS,
@@ -65,6 +66,7 @@
6566
vol.Required(ATTR_FAVORITE): bool,
6667
vol.Required(ATTR_DURATION): vol.Any(int, None),
6768
vol.Optional(ATTR_LOCAL_IMAGE_ENCODED): str,
69+
vol.Optional(ATTR_POSITION): str,
6870
},
6971
)
7072

0 commit comments

Comments
 (0)