From: Marcel van der Veldt Date: Tue, 12 Apr 2022 14:32:28 +0000 (+0200) Subject: add to_dict method to playerqueue X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=5ea7bfcce4fd8e9b36f41dd7f3ada34d051b76ab;p=music-assistant-server.git add to_dict method to playerqueue --- diff --git a/music_assistant/models/player.py b/music_assistant/models/player.py index d15d58d4..7fada523 100755 --- a/music_assistant/models/player.py +++ b/music_assistant/models/player.py @@ -281,7 +281,7 @@ class Player(ABC): "player_id": self.player_id, "name": self.name, "powered": self.powered, - "elapsed_time": self.elapsed_time, + "elapsed_time": int(self.elapsed_time), "state": self.state.value, "available": self.available, "is_group": self.is_group, diff --git a/music_assistant/models/player_queue.py b/music_assistant/models/player_queue.py index 8c47ccf2..5a15864f 100644 --- a/music_assistant/models/player_queue.py +++ b/music_assistant/models/player_queue.py @@ -6,7 +6,7 @@ import random from asyncio import Task, TimerHandle from dataclasses import dataclass from enum import Enum -from typing import TYPE_CHECKING, List, Optional, Tuple, Union +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union from uuid import uuid4 from mashumaro import DataClassDictMixin @@ -638,6 +638,27 @@ class PlayerQueue: """Indicate that queue stream needs to start next index once playback finished.""" self._signal_next = True + def to_dict(self) -> Dict[str, Any]: + """Export object to dict.""" + cur_item = self.current_item.to_dict() if self.current_item else None + next_item = self.next_item.to_dict() if self.next_item else None + return { + "queue_id": self.queue_id, + "player": self.player.player_id, + "name": self.player.name, + "active": self.active, + "elapsed_time": int(self.elapsed_time), + "state": self.player.state.value, + "available": self.player.available, + "current_item": cur_item, + "next_item": next_item, + "shuffle_enabled": self.shuffle_enabled, + "repeat_enabled": self.repeat_enabled, + "volume_normalization_enabled": self.volume_normalization_enabled, + "volume_normalization_target": self.volume_normalization_target, + "crossfade_duration": self.crossfade_duration, + } + def __get_queue_stream_index(self) -> Tuple[int, int]: """Calculate current queue index and current track elapsed time.""" # player is playing a constant stream so we need to do this the hard way