PodcastEpisode,
media_from_dict,
)
+from music_assistant_models.playback_progress_report import MediaItemPlaybackProgressReport
from music_assistant_models.player import PlayerMedia
from music_assistant_models.player_queue import PlayerQueue
from music_assistant_models.queue_item import QueueItem
output_formats: list[str] | None
-class MediaItemPlaybackProgressReport(TypedDict):
- """Object to submit in a progress the event submitted to report media playback."""
-
- uri: str
- media_type: MediaType
- name: str
- artist: str | None
- album: str | None
- image_url: str | None
- duration: int
- mbid: str | None
- seconds_played: int
- fully_played: bool
-
-
class PlayerQueuesController(CoreController):
"""Controller holding all logic to enqueue music for players."""
else:
fully_played = seconds_played >= duration - 10
+ is_playing = is_current_item and queue.state == PlayerState.PLAYING
self.logger.debug(
"%s %s '%s' (%s) - Fully played: %s - Progress: %s (%s/%ss)",
queue.display_name,
- "is playing" if (is_current_item and queue.state == PlayerState.PLAYING) else "played",
+ "is playing" if is_playing else "played",
item_to_report.name,
item_to_report.uri,
fully_played,
object_id=item_to_report.media_item.uri,
data=MediaItemPlaybackProgressReport(
uri=item_to_report.media_item.uri,
- name=item_to_report.media_item.name,
media_type=item_to_report.media_item.media_type,
+ name=item_to_report.media_item.name,
artist=getattr(item_to_report.media_item, "artist_str", None),
album=(
album.name
mbid=(getattr(item_to_report.media_item, "mbid", None)),
seconds_played=seconds_played,
fully_played=fully_played,
+ is_playing=is_playing,
),
)