Compare commits

...

2 Commits

Author SHA1 Message Date
Samuel Spagl 3e41dd31ae
Update 'totalTime' and 'elapsedTime' to be optional attributes 2024-10-08 10:59:10 +02:00
samuelspagl 11ed2d1444 Fix 'audiotrackdata' 2024-10-07 14:29:22 +02:00
2 changed files with 26 additions and 14 deletions

View File

@ -1,5 +1,12 @@
# Changelog # Changelog
## [0.4.1] It seems some Soundbars don't like music
### Fixed
- As it seems that some soundbars don't have the 'audioTrackData' attribute
the update process now, only tries to look at the data if it is existing.
## [0.4.0] Started with an "ick", but is now packed with new features 💪 ## [0.4.0] Started with an "ick", but is now packed with new features 💪
> ⚠️ Please read the following carefully: > ⚠️ Please read the following carefully:

View File

@ -72,18 +72,19 @@ class SoundbarDevice:
await self._update_equalizer() await self._update_equalizer()
async def _update_media(self): async def _update_media(self):
self.__media_artist = self.device.status._attributes["audioTrackData"].value[ if "audioTrackData" in self.device.status._attributes:
"artist" self.__media_artist = self.device.status._attributes["audioTrackData"].value[
] "artist"
self.__media_title = self.device.status._attributes["audioTrackData"].value[ ]
"title" self.__media_title = self.device.status._attributes["audioTrackData"].value[
] "title"
if self.__media_title != self.__old_media_title: ]
self.__old_media_title = self.__media_title if self.__media_title != self.__old_media_title:
self.__media_cover_url_update_time = datetime.datetime.now() self.__old_media_title = self.__media_title
self.__media_cover_url = await self.get_song_title_artwork( self.__media_cover_url_update_time = datetime.datetime.now()
self.__media_artist, self.__media_title self.__media_cover_url = await self.get_song_title_artwork(
) self.__media_artist, self.__media_title
)
async def _update_soundmode(self): async def _update_soundmode(self):
await self.update_execution_data(["/sec/networkaudio/soundmode"]) await self.update_execution_data(["/sec/networkaudio/soundmode"])
@ -372,11 +373,15 @@ class SoundbarDevice:
@property @property
def media_duration(self) -> int | None: def media_duration(self) -> int | None:
return self.device.status.attributes.get("totalTime").value attr = self.device.status.attributes.get("totalTime", None)
if attr:
return attr.value
@property @property
def media_position(self) -> int | None: def media_position(self) -> int | None:
return self.device.status.attributes.get("elapsedTime").value attr = self.device.status.attributes.get("elapsedTime", None)
if attr:
return attr.value
async def media_play(self): async def media_play(self):
await self.device.play(True) await self.device.play(True)