diff --git a/.gitignore b/.gitignore index 85ec1aa..ba23e45 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ __pycache__ env -sphinx/_build +sphinx/_build/* +!sphinx/_build/.gitkeep sphinx/resources/*.bkp sphinx/resources/*.dtmp asknavidrome.log diff --git a/alexa.json b/alexa.json index 80ab313..f7aebad 100644 --- a/alexa.json +++ b/alexa.json @@ -176,6 +176,16 @@ "Play random music", "Play random songs" ] + }, + { + "name": "NaviSonicRandomiseQueue", + "slots": [], + "samples": [ + "randomise the queue", + "randomise", + "shuffle", + "shuffle the queue" + ] } ], "types": [ diff --git a/skill/app.py b/skill/app.py index 6d3f375..d58e317 100755 --- a/skill/app.py +++ b/skill/app.py @@ -39,6 +39,7 @@ logger.addHandler(handler) # Get service configuration # +logger.info('AskNavidrome 0.6!') logger.debug('Getting configutration from the environment...') try: @@ -572,6 +573,24 @@ class NaviSonicPlayFavouriteSongs(AbstractRequestHandler): return controller.start_playback('play', speech, card, track_details, handler_input) +class NaviSonicRandomiseQueue(AbstractRequestHandler): + """Handle NaviSonicRandomiseQueue Intent + + Shuffle the current play queue + """ + + def can_handle(self, handler_input: HandlerInput) -> bool: + return is_intent_name('NaviSonicRandomiseQueue')(handler_input) + + def handle(self, handler_input: HandlerInput) -> Response: + logger.debug('In NaviSonicRandomiseQueue Handler') + + play_queue.shuffle() + play_queue.sync() + + return handler_input.response_builder.response + + class NaviSonicSongDetails(AbstractRequestHandler): """Handle NaviSonicSongDetails Intent @@ -630,7 +649,6 @@ class NaviSonicUnstarSong(AbstractRequestHandler): return handler_input.response_builder.response - # # AudioPlayer Handlers # @@ -899,6 +917,7 @@ sb.add_request_handler(NaviSonicPlayPlaylist()) sb.add_request_handler(NaviSonicPlayFavouriteSongs()) sb.add_request_handler(NaviSonicPlayMusicByGenre()) sb.add_request_handler(NaviSonicPlayMusicRandom()) +sb.add_request_handler(NaviSonicRandomiseQueue()) sb.add_request_handler(NaviSonicSongDetails()) sb.add_request_handler(NaviSonicStarSong()) sb.add_request_handler(NaviSonicUnstarSong()) diff --git a/sphinx/_build/.gitkeep b/sphinx/_build/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/sphinx/index.rst b/sphinx/index.rst index 87f4d97..d066d40 100644 --- a/sphinx/index.rst +++ b/sphinx/index.rst @@ -98,6 +98,8 @@ Supported Intents +-------------------------------------------+--------------------------------------------+-------------------------------------+ | :class:`~app.NaviSonicPlayFavouriteSongs` | Play your starred / favourite songs | Play my favourite songs | +-------------------------------------------+--------------------------------------------+-------------------------------------+ +| :class:`~app.NaviSonicRandomiseQueue` | Shuffle / randomise the current play queue | Shuffle the queue | ++-------------------------------------------+--------------------------------------------+-------------------------------------+ | :class:`~app.NaviSonicSongDetails` | Give details on the playing track | What is playing | +-------------------------------------------+--------------------------------------------+-------------------------------------+ | :class:`~app.NaviSonicStarSong` | Star / favourite a song | Star this song | @@ -413,7 +415,7 @@ Code Documentation ****************** .. toctree:: - :maxdepth: 2 + :maxdepth: 1 :caption: Contents: AskNavidrome main