From 2ac0aacc477fb1e192b02f841b41bc53a86fda0a Mon Sep 17 00:00:00 2001 From: Markus Zehnder Date: Thu, 17 Apr 2025 22:58:17 +0200 Subject: [PATCH 1/2] feat: set media player attribute `media_position_updated_at` Relates to unfoldedcircle/feature-and-bug-tracker#443 --- CHANGELOG.md | 1 + intg-androidtv/driver.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a6f321..0a56698 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ _Changes in the next release_ - Google Cast for media info & seeking support. Contributed by @albaintor, thanks! ([#57](https://github.com/unfoldedcircle/integration-androidtv/pull/57)) - This is currently a preview feature and must be enabled in the device configuration of the integration setup. - myCANAL application ([#55](https://github.com/unfoldedcircle/integration-androidtv/pull/55)) +- Set media player attribute "media_position_updated_at" ([feature-and-bug-tracker#443](https://github.com/unfoldedcircle/feature-and-bug-tracker/issues/443)). ### Changed - Add support article link and change setup description in first setup flow screen. diff --git a/intg-androidtv/driver.py b/intg-androidtv/driver.py index 1a3f4e8..aa9b0a8 100644 --- a/intg-androidtv/driver.py +++ b/intg-androidtv/driver.py @@ -10,6 +10,7 @@ import logging import os import sys +from datetime import UTC, datetime from typing import Any import setup_flow @@ -253,6 +254,7 @@ async def handle_android_tv_update(atv_id: str, update: dict[str, Any]) -> None: if MediaAttr.MEDIA_POSITION in update: attributes[MediaAttr.MEDIA_POSITION] = update[MediaAttr.MEDIA_POSITION] + attributes["media_position_updated_at"] = datetime.now(tz=UTC).isoformat() if MediaAttr.MEDIA_DURATION in update: attributes[MediaAttr.MEDIA_DURATION] = update[MediaAttr.MEDIA_DURATION] From ea4cb728657a319bbbe8d2a21a7b6c3572a00ec4 Mon Sep 17 00:00:00 2001 From: Markus Zehnder Date: Thu, 17 Apr 2025 23:06:15 +0200 Subject: [PATCH 2/2] fix: temporary media_image_url fix Correctly set the media_image_url from Cast. Needs to be reverted for PR #60 --- intg-androidtv/tv.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/intg-androidtv/tv.py b/intg-androidtv/tv.py index 463c305..8f34664 100644 --- a/intg-androidtv/tv.py +++ b/intg-androidtv/tv.py @@ -793,12 +793,14 @@ def new_media_status(self, status: MediaStatus) -> None: self._media_type = GOOGLE_CAST_MEDIA_TYPES_MAP.get(self._media_type, MediaType.VIDEO) update[MediaAttr.MEDIA_TYPE] = self._media_type - if status.images and len(status.images) > 0 and status.images[0] != self._media_image_url: - self._media_image_url = status.images[0] + if status.images and len(status.images) > 0 and status.images[0].url != self._media_image_url: + self._media_image_url = status.images[0].url update[MediaAttr.MEDIA_IMAGE_URL] = self._media_image_url - elif self._media_image_url: + elif not self._media_image_url: self._media_image_url = None update[MediaAttr.MEDIA_IMAGE_URL] = "" + else: + update[MediaAttr.MEDIA_IMAGE_URL] = self._media_image_url if update: _LOG.debug("[%s] Update remote with Chromecast info : %s", self.log_id, update)