Make Queue.current nullable, since MPD may be stopped

This commit is contained in:
Danielle McLean 2025-03-05 13:16:48 +11:00
parent b41339a8c5
commit 7dfd3f85e4
Signed by: 00dani
GPG key ID: 6854781A0488421C
3 changed files with 7 additions and 5 deletions
schemata
src/mpd_now_playable
mpd/convert
playback

View file

@ -104,7 +104,7 @@
"Queue": {
"properties": {
"current": {
"description": "The zero-based index of the current song in MPD's queue.",
"description": "The zero-based index of the current song in MPD's queue. If MPD is currently stopped, then there is no current song in the queue, indicated by None.",
"title": "Current",
"type": "integer"
},

View file

@ -9,8 +9,8 @@ from .to_song import to_song
def to_queue(mpd: MpdState) -> Queue:
return Queue(
current=int(mpd.current["pos"]),
next=int(mpd.status["nextsong"]),
current=option_fmap(int, mpd.current.get("pos")),
next=int(mpd.status.get("nextsong", 0)),
length=int(mpd.status["playlistlength"]),
)

View file

@ -3,8 +3,10 @@ from dataclasses import dataclass
@dataclass(slots=True)
class Queue:
#: The zero-based index of the current song in MPD's queue.
current: int
#: The zero-based index of the current song in MPD's queue. If MPD is
#: currently stopped, then there is no current song in the queue, indicated
#: by None.
current: int | None
#: The index of the next song to be played, taking into account random and
#: repeat playback settings.
next: int