From fcce6a8d11de37bc221f473b734849c5329f7198 Mon Sep 17 00:00:00 2001 From: Francesco Date: Sat, 25 Oct 2025 14:56:38 +0200 Subject: [PATCH] add song metadata, respond to button requests in media player --- skill/app.py | 6 ++++-- skill/asknavidrome/controller.py | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) mode change 100644 => 100755 skill/asknavidrome/controller.py diff --git a/skill/app.py b/skill/app.py index 5eda679..d87d1d5 100755 --- a/skill/app.py +++ b/skill/app.py @@ -903,7 +903,8 @@ class NextPlaybackHandler(AbstractRequestHandler): """Handle NextIntent""" def can_handle(self, handler_input: HandlerInput) -> bool: - return is_intent_name('AMAZON.NextIntent')(handler_input) + return (is_intent_name('AMAZON.NextIntent')(handler_input) or + is_request_type('PlaybackController.NextCommandIssued')(handler_input)) def handle(self, handler_input: HandlerInput) -> Response: logger.debug('In NextPlaybackHandler') @@ -920,7 +921,8 @@ class PreviousPlaybackHandler(AbstractRequestHandler): """Handle PreviousIntent""" def can_handle(self, handler_input: HandlerInput) -> bool: - return is_intent_name('AMAZON.PreviousIntent')(handler_input) + return (is_intent_name('AMAZON.PreviousIntent')(handler_input) or + is_request_type('PlaybackController.PreviousCommandIssued')(handler_input)) def handle(self, handler_input: HandlerInput) -> Response: logger.debug('In PreviousPlaybackHandler') diff --git a/skill/asknavidrome/controller.py b/skill/asknavidrome/controller.py old mode 100644 new mode 100755 index adfb01f..4b431dd --- a/skill/asknavidrome/controller.py +++ b/skill/asknavidrome/controller.py @@ -42,7 +42,19 @@ def start_playback(mode: str, text: str, card_data: dict, track_details: Track, :return: Amazon Alexa Response class :rtype: Response """ - + metadata = AudioItemMetadata( + title=track_details.title, + subtitle=track_details.artist, + art=display.Image( + content_description=track_details.title, + sources=[ + display.ImageInstance( + url='https://github.com/navidrome/navidrome/raw/master/resources/logo-192x192.png' + ) + ] + ) + ) + if mode == 'play': # Starting playback logger.debug('In start_playback() - play mode') @@ -67,7 +79,7 @@ def start_playback(mode: str, text: str, card_data: dict, track_details: Track, url=track_details.uri, offset_in_milliseconds=track_details.offset, expected_previous_token=None), - metadata=add_screen_background(card_data) if card_data else None + metadata=metadata ) ) ).set_should_end_session(True)