Merge pull request #66 from f-longobardi/main

Enable display of song metadata
Thanks to @f-longobardi
This commit is contained in:
rosskouk
2026-03-06 15:13:01 +00:00
committed by GitHub
2 changed files with 19 additions and 5 deletions
+4 -2
View File
@@ -903,7 +903,8 @@ class NextPlaybackHandler(AbstractRequestHandler):
"""Handle NextIntent""" """Handle NextIntent"""
def can_handle(self, handler_input: HandlerInput) -> bool: 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: def handle(self, handler_input: HandlerInput) -> Response:
logger.debug('In NextPlaybackHandler') logger.debug('In NextPlaybackHandler')
@@ -920,7 +921,8 @@ class PreviousPlaybackHandler(AbstractRequestHandler):
"""Handle PreviousIntent""" """Handle PreviousIntent"""
def can_handle(self, handler_input: HandlerInput) -> bool: 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: def handle(self, handler_input: HandlerInput) -> Response:
logger.debug('In PreviousPlaybackHandler') logger.debug('In PreviousPlaybackHandler')
Regular → Executable
+15 -3
View File
@@ -42,7 +42,19 @@ def start_playback(mode: str, text: str, card_data: dict, track_details: Track,
:return: Amazon Alexa Response class :return: Amazon Alexa Response class
:rtype: Response :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': if mode == 'play':
# Starting playback # Starting playback
logger.debug('In start_playback() - play mode') 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, url=track_details.uri,
offset_in_milliseconds=track_details.offset, offset_in_milliseconds=track_details.offset,
expected_previous_token=None), expected_previous_token=None),
metadata=add_screen_background(card_data) if card_data else None metadata=metadata
) )
) )
).set_should_end_session(True) ).set_should_end_session(True)
@@ -95,7 +107,7 @@ def start_playback(mode: str, text: str, card_data: dict, track_details: Track,
# if the Previous intent is used # if the Previous intent is used
offset_in_milliseconds=0, offset_in_milliseconds=0,
expected_previous_token=track_details.previous_id), expected_previous_token=track_details.previous_id),
metadata=None metadata=metadata
) )
) )
).set_should_end_session(True) ).set_should_end_session(True)