From e84ff61d4ac4e839caed7fe2e969cd616c2477bd Mon Sep 17 00:00:00 2001 From: Erik Eriksson Date: Thu, 10 Aug 2017 16:56:34 +0200 Subject: [PATCH] Support media position and media duration (will display progressbar in ui) (#8904) --- .../components/media_player/squeezebox.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/media_player/squeezebox.py b/homeassistant/components/media_player/squeezebox.py index f9099fe24d2..859d596f98f 100644 --- a/homeassistant/components/media_player/squeezebox.py +++ b/homeassistant/components/media_player/squeezebox.py @@ -23,6 +23,7 @@ from homeassistant.const import ( STATE_PAUSED, STATE_PLAYING, STATE_UNKNOWN, CONF_PORT) import homeassistant.helpers.config_validation as cv from homeassistant.helpers.aiohttp_client import async_get_clientsession +from homeassistant.util.dt import utcnow _LOGGER = logging.getLogger(__name__) @@ -154,6 +155,7 @@ class SqueezeBoxDevice(MediaPlayerDevice): self._id = player_id self._status = {} self._name = name + self._last_update = None _LOGGER.debug("Creating SqueezeBox object: %s, %s", name, player_id) @property @@ -199,7 +201,7 @@ class SqueezeBoxDevice(MediaPlayerDevice): if response is False: return - self._status = response.copy() + self._status = {} try: self._status.update(response["playlist_loop"][0]) @@ -210,6 +212,9 @@ class SqueezeBoxDevice(MediaPlayerDevice): except KeyError: pass + self._status.update(response) + self._last_update = utcnow() + @property def volume_level(self): """Volume level of the media player (0..1).""" @@ -239,6 +244,17 @@ class SqueezeBoxDevice(MediaPlayerDevice): if 'duration' in self._status: return int(float(self._status['duration'])) + @property + def media_position(self): + """Duration of current playing media in seconds.""" + if 'time' in self._status: + return int(float(self._status['time'])) + + @property + def media_position_updated_at(self): + """Last time status was updated.""" + return self._last_update + @property def media_image_url(self): """Image url of current playing media."""