-
-

AskNavidrome Alexa Skill Documentation - TEST==

+
+

AskNavidrome Alexa Skill Documentation

AskNavidrome is an Alexa skill which allows you to play music hosted on a SubSonic API compatible media server, like Navidrome.

This allows to you stream your own music collection to your Echo devices without the restrictions you would normally face with regular streaming services like Amazon Music or Spotify. AskNavidrome allows you to:

@@ -1184,7 +1184,7 @@ is working

A

@@ -63,10 +66,17 @@
  • add_track() (asknavidrome.media_queue.MediaQueue method)
  • - - + +

    R

    + + +
    +

    S

    @@ -234,6 +428,20 @@ +

    V

    + + + +
    +
    diff --git a/docs/index.html b/docs/index.html index c5a77a5..cd54083 100644 --- a/docs/index.html +++ b/docs/index.html @@ -102,43 +102,43 @@ behind a reverse proxy, the web service also needs to be publicly accessible on -

    NaviSonicPlayMusicByArtist

    +

    NaviSonicPlayMusicByArtist

    Play music by a specific artist

    Play Where is my Mind by The Pixies

    -

    NaviSonicPlayAlbumByArtist

    +

    NaviSonicPlayAlbumByArtist

    Play a specific album by a specific artist

    Play The Blue Album by The Beatles

    -

    NaviSonicPlaySongByArtist

    +

    NaviSonicPlaySongByArtist

    Play a specific song by a specific artist

    Play the song Help by The Beatles

    -

    NaviSonicPlayPlaylist

    +

    NaviSonicPlayPlaylist

    Play a playlist

    Play the playlist work music

    -

    NaviSonicPlayMusicByGenre

    +

    NaviSonicPlayMusicByGenre

    Play music with a specific genre

    Play jazz music

    -

    NaviSonicPlayMusicRandom

    +

    NaviSonicPlayMusicRandom

    Play a random mix of songs

    Play random songs

    -

    NaviSonicPlayFavouriteSongs

    +

    NaviSonicPlayFavouriteSongs

    Play your starred / favourite songs

    Play my favourite songs

    -

    NaviSonicSongDetails

    +

    NaviSonicSongDetails

    Give details on the playing track

    What is playing

    -

    NaviSonicStarSong

    +

    NaviSonicStarSong

    Star / favourite a song

    Star this song

    -

    NaviSonicUnstarSong

    +

    NaviSonicUnstarSong

    Unstar / unfavourite a song

    Unstar this song

    @@ -146,10 +146,10 @@ behind a reverse proxy, the web service also needs to be publicly accessible on

    The following control intents are also supported:

    Due to the way that Alexa skills operate there are some limitations. Full music Alexa skills require a catalog of content to be provided and this defeats the purpose of being able to search and stream from your own server directly. Because of this a custom skill type is used along with the AudioPlayer interface, @@ -450,8 +450,1625 @@ the entries will contain any errors that were thrown.

    Code Documentation

    -
    -

    AskNavidrome main

    +
    +

    AskNavidrome main

    +

    Classes:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    CheckAudioInterfaceHandler()

    Check if device supports audio play.

    GeneralExceptionHandler()

    Handle general exceptions

    HelpHandler()

    Handle HelpIntent

    LaunchRequestHandler()

    Handle LaunchRequest and NavigateHomeIntent

    LoggingRequestInterceptor()

    Intercept all requests

    LoggingResponseInterceptor()

    Intercept all responses

    NaviSonicPlayAlbumByArtist()

    Handle NaviSonicPlayAlbumByArtist

    NaviSonicPlayFavouriteSongs()

    Handle the NaviSonicPlayFavouriteSongs intent

    NaviSonicPlayMusicByArtist()

    Handle NaviSonicPlayMusicByArtist

    NaviSonicPlayMusicByGenre()

    Play songs from the given genere

    NaviSonicPlayMusicRandom()

    Handle the NaviSonicPlayMusicRandom intent

    NaviSonicPlayPlaylist()

    Handle NaviSonicPlayPlaylist

    NaviSonicPlaySongByArtist()

    Handle the NaviSonicPlaySongByArtist intent

    NaviSonicSongDetails()

    Handle NaviSonicSongDetails Intent

    NaviSonicStarSong()

    Handle NaviSonicStarSong Intent

    NaviSonicUnstarSong()

    Handle NaviSonicUnstarSong Intent

    NextPlaybackHandler()

    Handle NextIntent

    PausePlaybackHandler()

    Handler for stopping audio.

    PlaybackFailedEventHandler()

    AudioPlayer.PlaybackFailed Directive received.

    PlaybackFinishedHandler()

    AudioPlayer.PlaybackFinished Directive received.

    PlaybackNearlyFinishedHandler()

    AudioPlayer.PlaybackNearlyFinished Directive received.

    PlaybackStartedHandler()

    AudioPlayer.PlaybackStarted Directive received.

    PlaybackStoppedHandler()

    AudioPlayer.PlaybackStopped Directive received.

    PreviousPlaybackHandler()

    Handle PreviousIntent

    ResumePlaybackHandler()

    Handler for resuming audio on different events.

    SkillEventHandler()

    Close session for skill events or when session ends.

    SystemExceptionHandler()

    Handle System.ExceptionEncountered

    +

    Functions:

    + + + + + + + + + + + + +

    view_buffer()

    View the contents of play_queue.buffer

    view_history()

    View the contents of play_queue.history

    view_queue()

    View the contents of play_queue.queue

    +
    +
    +class app.CheckAudioInterfaceHandler
    +

    Check if device supports audio play.

    +

    This can be used as the first handler to be checked, before invoking +other handlers, thus making the skill respond to unsupported devices +without doing much processing.

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.GeneralExceptionHandler
    +

    Handle general exceptions

    +

    Handles exceptions and prints error information +in the log

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input, exception)

    Checks if the handler can support the exception raised during dispatch.

    handle(handler_input, exception)

    Process the handler input and exception.

    +
    +
    +can_handle(handler_input: HandlerInput, exception: Exception) bool
    +

    Checks if the handler can support the exception raised +during dispatch.

    +
    +
    Parameters:
    +
      +
    • handler_input (HandlerInput) – Handler Input instance.

    • +
    • exception (Exception) – Exception raised during dispatch.

    • +
    +
    +
    Returns:
    +

    Boolean whether handler can handle exception or not.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput, exception: Exception) Response
    +

    Process the handler input and exception.

    +
    +
    Parameters:
    +
      +
    • handler_input (HandlerInput) – Handler Input instance.

    • +
    • exception (Exception) – Exception raised during dispatch.

    • +
    +
    +
    Returns:
    +

    Optional response object to serve as dispatch return.

    +
    +
    Return type:
    +

    Union[None, Response]

    +
    +
    +
    + +
    + +
    +
    +class app.HelpHandler
    +

    Handle HelpIntent

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.LaunchRequestHandler
    +

    Handle LaunchRequest and NavigateHomeIntent

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.LoggingRequestInterceptor
    +

    Intercept all requests

    +

    Intercepts all requests sent to the skill and prints them in the log

    +

    Methods:

    + + + + + + +

    process(handler_input)

    Process the input before the Handler is run.

    +
    +
    +process(handler_input: HandlerInput)
    +

    Process the input before the Handler is run.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance.

    +
    +
    Return type:
    +

    None

    +
    +
    +
    + +
    + +
    +
    +class app.LoggingResponseInterceptor
    +

    Intercept all responses

    +

    Intercepts all responses sent from the skill and prints them in the log

    +

    Methods:

    + + + + + + +

    process(handler_input, response)

    Process the input and the response after the Handler is run.

    +
    +
    +process(handler_input: HandlerInput, response: Response)
    +

    Process the input and the response after the Handler is run.

    +
    +
    Parameters:
    +
      +
    • handler_input (HandlerInput) – Handler Input instance.

    • +
    • response (Union[None, ask_sdk_model.response.Response]) – Execution result of the Handler on +handler input.

    • +
    +
    +
    Return type:
    +

    None

    +
    +
    +
    + +
    + +
    +
    +class app.NaviSonicPlayAlbumByArtist
    +

    Handle NaviSonicPlayAlbumByArtist

    +

    Play a given album by a given artist

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.NaviSonicPlayFavouriteSongs
    +

    Handle the NaviSonicPlayFavouriteSongs intent

    +

    Play all starred / liked songs, songs are automatically shuffled.

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.NaviSonicPlayMusicByArtist
    +

    Handle NaviSonicPlayMusicByArtist

    +

    Play a selection of songs for the given artist

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.NaviSonicPlayMusicByGenre
    +

    Play songs from the given genere

    +

    50 tracks from the given genere are shuffled and played

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.NaviSonicPlayMusicRandom
    +

    Handle the NaviSonicPlayMusicRandom intent

    +

    Play a random selection of music.

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.NaviSonicPlayPlaylist
    +

    Handle NaviSonicPlayPlaylist

    +

    Play the given playlist

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.NaviSonicPlaySongByArtist
    +

    Handle the NaviSonicPlaySongByArtist intent

    +

    Play the given song by the given artist if it exists in the +collection.

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.NaviSonicSongDetails
    +

    Handle NaviSonicSongDetails Intent

    +

    Returns information on the track that is currently playing

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.NaviSonicStarSong
    +

    Handle NaviSonicStarSong Intent

    +

    Star / favourite the current song

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.NaviSonicUnstarSong
    +

    Handle NaviSonicUnstarSong Intent

    +

    Star / favourite the current song

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.NextPlaybackHandler
    +

    Handle NextIntent

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.PausePlaybackHandler
    +

    Handler for stopping audio.

    +

    Handles Stop, Cancel and Pause Intents and PauseCommandIssued event.

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.PlaybackFailedEventHandler
    +

    AudioPlayer.PlaybackFailed Directive received.

    +

    Logging the error and restarting playing with no output speech.

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.PlaybackFinishedHandler
    +

    AudioPlayer.PlaybackFinished Directive received.

    +

    Confirming that the requested audio file completed playing. +Do not send any specific response.

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.PlaybackNearlyFinishedHandler
    +

    AudioPlayer.PlaybackNearlyFinished Directive received.

    +

    Replacing queue with the URL again. This should not happen on live streams.

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.PlaybackStartedHandler
    +

    AudioPlayer.PlaybackStarted Directive received.

    +

    Confirming that the requested audio file began playing. +Do not send any specific response.

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.PlaybackStoppedHandler
    +

    AudioPlayer.PlaybackStopped Directive received.

    +

    Confirming that the requested audio file stopped playing. +Do not send any specific response.

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.PreviousPlaybackHandler
    +

    Handle PreviousIntent

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.ResumePlaybackHandler
    +

    Handler for resuming audio on different events.

    +

    Handles PlayAudio Intent, Resume Intent.

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.SkillEventHandler
    +

    Close session for skill events or when session ends.

    +

    Handler to handle session end or skill events (SkillEnabled, +SkillDisabled etc.)

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input)

    Returns true if Request Handler can handle the Request inside Handler Input.

    handle(handler_input)

    Handles the Request inside handler input and provides a Response for dispatcher to return.

    +
    +
    +can_handle(handler_input: HandlerInput) bool
    +

    Returns true if Request Handler can handle the Request +inside Handler Input.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Boolean value that tells the dispatcher if the +current request can be handled by this handler.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput) Response
    +

    Handles the Request inside handler input and provides a +Response for dispatcher to return.

    +
    +
    Parameters:
    +

    handler_input (HandlerInput) – Handler Input instance with +Request Envelope containing Request.

    +
    +
    Returns:
    +

    Response for the dispatcher to return or None

    +
    +
    Return type:
    +

    Union[Response, None]

    +
    +
    +
    + +
    + +
    +
    +class app.SystemExceptionHandler
    +

    Handle System.ExceptionEncountered

    +

    Handles exceptions and prints error information +in the log

    +

    Methods:

    + + + + + + + + + +

    can_handle(handler_input, exception)

    Checks if the handler can support the exception raised during dispatch.

    handle(handler_input, exception)

    Process the handler input and exception.

    +
    +
    +can_handle(handler_input: HandlerInput, exception: Exception) bool
    +

    Checks if the handler can support the exception raised +during dispatch.

    +
    +
    Parameters:
    +
      +
    • handler_input (HandlerInput) – Handler Input instance.

    • +
    • exception (Exception) – Exception raised during dispatch.

    • +
    +
    +
    Returns:
    +

    Boolean whether handler can handle exception or not.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +handle(handler_input: HandlerInput, exception: Exception) Response
    +

    Process the handler input and exception.

    +
    +
    Parameters:
    +
      +
    • handler_input (HandlerInput) – Handler Input instance.

    • +
    • exception (Exception) – Exception raised during dispatch.

    • +
    +
    +
    Returns:
    +

    Optional response object to serve as dispatch return.

    +
    +
    Return type:
    +

    Union[None, Response]

    +
    +
    +
    + +
    + +
    +
    +app.view_buffer()
    +

    View the contents of play_queue.buffer

    +

    Creates a tabulated page contining the contents of the play_queue.buffer deque.

    +
    + +
    +
    +app.view_history()
    +

    View the contents of play_queue.history

    +

    Creates a tabulated page contining the contents of the play_queue.history deque.

    +
    + +
    +
    +app.view_queue()
    +

    View the contents of play_queue.queue

    +

    Creates a tabulated page contining the contents of the play_queue.queue deque.

    +
    +

    AskNavidrome controller

    @@ -1200,7 +2817,7 @@ is working

  • Troubleshooting
  • Code Documentation
      -
    • AskNavidrome main
    • +
    • AskNavidrome main
    • AskNavidrome controller
    • AskNavidrome media queue
    • AskNavidrome subsonic API
    • diff --git a/docs/objects.inv b/docs/objects.inv index 5a02347458873a5e9baacb179e1477a3fc02bcc7..f5a43ca131b437aeaaae73129baa8583e3576f9f 100644 GIT binary patch delta 985 zcmV;~119|H1jY!Edw-bAa@;5shWCC7Rb{qTCEM(Ja+#!R?DE7jYZZ-7OH|XqaOqfY z9}tpTvZV-Uyl_=p;``4J933u5h(dH9PrNo1iuVO!H9VEAKGApn+3g?2?F|y5{L}(I z?o3Viccwue5QcAv)fA)?z!WJ}e3VGbhE?|q8gar3Jccpo+k;?zD96v={ z_t;g=2Z;pS{n5yD8JSee&wK*wK8}U@3KI|IDcKB!^j6@6vSCwLL$5_;(_Qu zeYJ@V^_MfSz@6bb7-M{0BvODdqFSgUz0au><1ZBA=zBntc4^)h*@PY}>%?ieqN8Iw zFozPHzYvIpxe)P|r%;mRnLr>c;Y_$uktJoBiZQ*S5JuZ$kU2$`!9^y*@iHIAJ{}3B z5%up?`+o?Zuh~GZQyNZ@_aMtqjN4^_F!)U1XSFwngZFtb3_FqEG;Zy7kjpNxwLRq< z*l4Sc%x*hs$xrq`!<~jqBW8mRwtP#f%QG8)Obpcmv9>? zU5O#&J$`i+wyCUh2{?`(qI`mW472ohQn0R^TFRRy zOX5CP#Vd7GYd@upA|E2tF&wO+%wD+@Vub`LABTTFamK(`robYzAyXoE!Ktc!SE1+I zkAEEgZ1o|uu4I3O)R*;&=9hogtqzu|d}rP^#$mired9RIcwzZ=A;jdCE=v?wQTiD5 zx1X-$unFyyV#8Z8^ftKP_+g`Bk20oUo zKuYd}MI>H>*tgaMl8M&@5?&c%m&e4fP)JV!19E4mb?Xq$gMamW&@d)r)-ufS3&|d( z0zO$@-KOt{^qBxcgLA8-r>J^6yU?TWj9dq*L(}B^g7;R{!Q(oR&>v$r^ zb@3``JT*dYB!BT^h6{CUhDvZ4RJEIbZVVCT&h*13^9`l~U5DQBdgQTt#tfFSFLocL zCAUD*^ix~sx;*}s%bO_0voq(_(LlU`R(U+Lo)*dCc~zuYSu`oBqf9y^dQjSx2gk@4 zgAR(?VlWp+r08-57KfI-nKQL`_GfO&Q#odQ)baRi$Z~U~2r|$L=rnMv$7Sq((s|>Z zomQCh@=8OEnr$!HvO1k(|I_E@?U*zo9XdL3?e=$zVs@?Z0BpBcTC;yfgg)90$&XEZ vpnsrj7`MwtrrqYZeO7z4`;FNB7^6b(rE`Mc3+A;fv&;MU(BkF=j$oDk82keI diff --git a/docs/py-modindex.html b/docs/py-modindex.html index 472a161..d0eba43 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -51,6 +51,11 @@   a + + + + app + diff --git a/docs/searchindex.js b/docs/searchindex.js index df9095c..bda654c 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index"], "filenames": ["index.rst"], "titles": ["AskNavidrome Alexa Skill Documentation"], "terms": {"i": 0, "an": 0, "which": 0, "allow": 0, "you": 0, "plai": 0, "music": 0, "host": 0, "compat": 0, "server": 0, "like": 0, "navidrom": 0, "thi": 0, "stream": 0, "own": 0, "collect": 0, "echo": 0, "devic": 0, "without": 0, "restrict": 0, "would": 0, "normal": 0, "face": 0, "regular": 0, "amazon": 0, "spotifi": 0, "skip": 0, "backward": 0, "forward": 0, "current": 0, "playlist": 0, "limit": 0, "avoid": 0, "pai": 0, "subscript": 0, "cost": 0, "being": 0, "forc": 0, "listen": 0, "advert": 0, "interv": 0, "actual": 0, "us": 0, "have": 0, "alreadi": 0, "paid": 0, "directli": 0, "wa": 0, "inspir": 0, "askson": 0, "howev": 0, "miss": 0, "two": 0, "featur": 0, "abil": 0, "individu": 0, "song": 0, "instead": 0, "contribut": 0, "project": 0, "opt": 0, "new": 0, "base": 0, "kit": 0, "sdk": 0, "python": 0, "ha": 0, "been": 0, "updat": 0, "more": 0, "recent": 0, "than": 0, "flask": 0, "ask": 0, "replac": 0, "doe": 0, "implement": 0, "all": 0, "": 0, "viabl": 0, "altern": 0, "those": 0, "simpl": 0, "let": 0, "The": 0, "usernam": 0, "password": 0, "store": 0, "clear": 0, "text": 0, "As": 0, "need": 0, "publicli": 0, "access": 0, "chanc": 0, "could": 0, "compromis": 0, "pleas": 0, "do": 0, "administr": 0, "account": 0, "ani": 0, "other": 0, "softwar": 0, "distribut": 0, "under": 0, "mit": 0, "licens": 0, "warranti": 0, "provid": 0, "In": 0, "order": 0, "convert": 0, "digit": 0, "format": 0, "mp3": 0, "There": 0, "ar": 0, "mani": 0, "tutori": 0, "avail": 0, "help": 0, "awar": 0, "type": 0, "file": 0, "can": 0, "should": 0, "review": 0, "befor": 0, "meet": 0, "thei": 0, "transcod": 0, "them": 0, "articl": 0, "explain": 0, "audio": 0, "A": 0, "flavour": 0, "For": 0, "inform": 0, "get": 0, "set": 0, "up": 0, "check": 0, "out": 0, "websit": 0, "must": 0, "port": 0, "443": 0, "serv": 0, "request": 0, "http": 0, "valid": 0, "tl": 0, "certif": 0, "dictat": 0, "unabl": 0, "from": 0, "internet": 0, "addit": 0, "abl": 0, "mobil": 0, "app": 0, "too": 0, "free": 0, "encrypt": 0, "dynam": 0, "dn": 0, "make": 0, "afraid": 0, "org": 0, "tag": 0, "mai": 0, "seem": 0, "obviou": 0, "sure": 0, "accur": 0, "artist": 0, "titl": 0, "number": 0, "etc": 0, "onli": 0, "wai": 0, "identifi": 0, "If": 0, "tool": 0, "look": 0, "musicbrainz": 0, "picard": 0, "someth": 0, "consist": 0, "part": 0, "connect": 0, "easiest": 0, "enabl": 0, "behind": 0, "revers": 0, "proxi": 0, "also": 0, "name": 0, "descript": 0, "exampl": 0, "navisonicplaymusicbyartist": 0, "specif": 0, "where": 0, "my": 0, "mind": 0, "pixi": 0, "navisonicplayalbumbyartist": 0, "album": 0, "blue": 0, "beatl": 0, "navisonicplaysongbyartist": 0, "navisonicplayplaylist": 0, "work": 0, "navisonicplaymusicbygenr": 0, "genr": 0, "jazz": 0, "navisonicplaymusicrandom": 0, "random": 0, "mix": 0, "navisonicplayfavouritesong": 0, "star": 0, "favourit": 0, "navisonicsongdetail": 0, "give": 0, "detail": 0, "what": 0, "navisonicstarsong": 0, "navisonicunstarsong": 0, "unstar": 0, "unfavourit": 0, "follow": 0, "next": 0, "previou": 0, "back": 0, "paus": 0, "resum": 0, "due": 0, "oper": 0, "some": 0, "full": 0, "catalog": 0, "content": 0, "defeat": 0, "purpos": 0, "search": 0, "becaus": 0, "custom": 0, "along": 0, "audioplay": 0, "interfac": 0, "open": 0, "sai": 0, "navison": 0, "expect": 0, "when": 0, "invoc": 0, "want": 0, "invok": 0, "call": 0, "while": 0, "given": 0, "automat": 0, "login": 0, "builder": 0, "develop": 0, "com": 0, "same": 0, "click": 0, "wish": 0, "word": 0, "warn": 0, "rais": 0, "found": 0, "singl": 0, "still": 0, "test": 0, "It": 0, "hard": 0, "find": 0, "good": 0, "so": 0, "feel": 0, "experi": 0, "primari": 0, "local": 0, "extrem": 0, "import": 0, "match": 0, "error": 0, "messag": 0, "gener": 0, "issu": 0, "quit": 0, "difficult": 0, "via": 0, "android": 0, "troubl": 0, "default": 0, "u": 0, "first": 0, "save": 0, "few": 0, "hour": 0, "sync": 0, "No": 0, "choos": 0, "model": 0, "provis": 0, "method": 0, "backend": 0, "resourc": 0, "again": 0, "templat": 0, "start": 0, "scratch": 0, "continu": 0, "wait": 0, "upload": 0, "interact": 0, "json": 0, "editor": 0, "delet": 0, "everyth": 0, "past": 0, "To": 0, "add": 0, "each": 0, "playlist_nam": 0, "slot": 0, "maintain": 0, "list": 0, "asknavison": 0, "remov": 0, "button": 0, "done": 0, "player": 0, "endpoint": 0, "locat": 0, "select": 0, "enter": 0, "url": 0, "region": 0, "box": 0, "ssl": 0, "depend": 0, "trust": 0, "author": 0, "build": 0, "process": 0, "take": 0, "minut": 0, "just": 0, "now": 0, "publish": 0, "anyon": 0, "possibl": 0, "credenti": 0, "retriev": 0, "written": 0, "recommend": 0, "whichev": 0, "well": 0, "known": 0, "One": 0, "sever": 0, "caddi": 0, "apach": 0, "nginx": 0, "rememb": 0, "mean": 0, "3": 0, "python3": 0, "git": 0, "scm": 0, "directori": 0, "chang": 0, "clone": 0, "repositori": 0, "github": 0, "cd": 0, "rosskouk": 0, "folder": 0, "environ": 0, "variabl": 0, "execut": 0, "applic": 0, "option": 0, "section": 0, "navi_skill_id": 0, "id": 0, "navi_song_count": 0, "50": 0, "navi_url": 0, "navi_us": 0, "navi_pass": 0, "navi_port": 0, "navi_api_path": 0, "rest": 0, "navi_api_v": 0, "1": 0, "16": 0, "navi_debug": 0, "0": 0, "py": 0, "dockerfil": 0, "prebuilt": 0, "pass": 0, "command": 0, "p": 0, "5000": 0, "e": 0, "ghcr": 0, "io": 0, "kubernet": 0, "pod": 0, "side": 0, "car": 0, "renew": 0, "ingress": 0, "read": 0, "prevent": 0, "amzn1": 0, "xxxxxxxx": 0, "xxxx": 0, "xxxxxxxxxxxx": 0, "minimum": 0, "ensur": 0, "ad": 0, "least": 0, "valu": 0, "user": 0, "bob": 0, "sup3rstrongp": 0, "ssword": 0, "path": 0, "haven": 0, "t": 0, "anyth": 0, "version": 0, "debug": 0, "disabl": 0, "littl": 0, "frustrat": 0, "here": 0, "best": 0, "understand": 0, "effect": 0, "function": 0, "noth": 0, "translat": 0, "perform": 0, "task": 0, "veri": 0, "go": 0, "wrong": 0, "thing": 0, "mismatch": 0, "happen": 0, "try": 0, "correctli": 0, "cannot": 0, "commun": 0, "might": 0, "phrase": 0, "consol": 0, "includ": 0, "me": 0, "though": 0, "log": 0, "page": 0, "show": 0, "histori": 0, "buffer": 0, "note": 0, "differ": 0, "queu": 0, "finish": 0, "thought": 0, "sent": 0, "respons": 0, "between": 0, "simul": 0, "uncov": 0, "hidden": 0, "tick": 0, "instruct": 0, "microphon": 0, "after": 0, "scroll": 0, "down": 0, "through": 0, "entri": 0, "were": 0, "thrown": 0, "add_screen_background": 0, "card_data": 0, "dict": 0, "audioitemmetadata": 0, "background": 0, "card": 0, "viewabl": 0, "screen": 0, "paramet": 0, "dictionari": 0, "data": 0, "return": 0, "object": 0, "none": 0, "present": 0, "enqueue_song": 0, "subsonicconnect": 0, "mediaqueu": 0, "song_id_list": 0, "enqueu": 0, "dequ": 0, "start_playback": 0, "mode": 0, "str": 0, "track_detail": 0, "handler_input": 0, "handlerinput": 0, "begin": 0, "stop": 0, "doc": 0, "refer": 0, "html": 0, "replace_al": 0, "immedi": 0, "playback": 0, "specifi": 0, "spoken": 0, "displai": 0, "class": 0, "media_queu": 0, "attribut": 0, "add_track": 0, "enqueue_next_track": 0, "send": 0, "playbacknearlyfinish": 0, "earli": 0, "get_history_count": 0, "int": 0, "get_next_track": 0, "self": 0, "get_prevous_track": 0, "last": 0, "front": 0, "get_queue_count": 0, "shuffl": 0, "reset": 0, "playbehaviour": 0, "syncronis": 0, "overwrit": 0, "result": 0, "correct": 0, "practic": 0, "action": 0, "current_track": 0, "caus": 0, "lose": 0, "real": 0, "posit": 0, "properti": 0, "hold": 0, "logger": 0, "subsonic_api": 0, "server_url": 0, "passwd": 0, "api_loc": 0, "api_vers": 0, "authent": 0, "against": 0, "compatib": 0, "append": 0, "albums_by_artist": 0, "build_random_song_list": 0, "count": 0, "build_song_list_from_album": 0, "length": 0, "keep": 0, "until": 0, "song_count": 0, "greater": 0, "equal": 0, "build_song_list_from_favourit": 0, "build_song_list_from_genr": 0, "accept": 0, "getgenr": 0, "build_song_list_from_playlist": 0, "get_song_detail": 0, "get_song_uri": 0, "uri": 0, "repres": 0, "embed": 0, "properli": 0, "ping": 0, "bool": 0, "verifi": 0, "true": 0, "fals": 0, "search_album": 0, "term": 0, "search_artist": 0, "search_playlist": 0, "search_song": 0, "star_entri": 0, "entiti": 0, "unstar_entri": 0, "artist_id": 0, "album_id": 0, "track_no": 0, "year": 0, "durat": 0, "bitrat": 0, "offset": 0, "previous_id": 0, "releas": 0, "second": 0, "bit": 0, "rate": 0, "kbp": 0, "millisecond": 0}, "objects": {"asknavidrome": [[0, 0, 0, "-", "controller"]], "asknavidrome.controller": [[0, 1, 1, "", "add_screen_background"], [0, 1, 1, "", "enqueue_songs"], [0, 1, 1, "", "start_playback"], [0, 1, 1, "", "stop"]], "asknavidrome.media_queue": [[0, 2, 1, "", "MediaQueue"]], "asknavidrome.media_queue.MediaQueue": [[0, 3, 1, "", "add_track"], [0, 4, 1, "", "buffer"], [0, 3, 1, "", "clear"], [0, 4, 1, "", "current_track"], [0, 3, 1, "", "enqueue_next_track"], [0, 3, 1, "", "get_history_count"], [0, 3, 1, "", "get_next_track"], [0, 3, 1, "", "get_prevous_track"], [0, 3, 1, "", "get_queue_count"], [0, 4, 1, "", "history"], [0, 4, 1, "", "logger"], [0, 4, 1, "", "queue"], [0, 3, 1, "", "shuffle"], [0, 3, 1, "", "sync"]], "asknavidrome.subsonic_api": [[0, 2, 1, "", "SubsonicConnection"]], "asknavidrome.subsonic_api.SubsonicConnection": [[0, 3, 1, "", "albums_by_artist"], [0, 3, 1, "", "build_random_song_list"], [0, 3, 1, "", "build_song_list_from_albums"], [0, 3, 1, "", "build_song_list_from_favourites"], [0, 3, 1, "", "build_song_list_from_genre"], [0, 3, 1, "", "build_song_list_from_playlist"], [0, 3, 1, "", "get_song_details"], [0, 3, 1, "", "get_song_uri"], [0, 3, 1, "", "ping"], [0, 3, 1, "", "search_album"], [0, 3, 1, "", "search_artist"], [0, 3, 1, "", "search_playlist"], [0, 3, 1, "", "search_song"], [0, 3, 1, "", "star_entry"], [0, 3, 1, "", "unstar_entry"]], "asknavidrome.track": [[0, 2, 1, "", "Track"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method", "4": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "attribute", "Python attribute"]}, "titleterms": {"asknavidrom": 0, "alexa": 0, "skill": 0, "document": 0, "requir": 0, "about": 0, "support": 0, "intent": 0, "instal": 0, "setup": 0, "creat": 0, "deploi": 0, "web": 0, "servic": 0, "run": 0, "your": 0, "pc": 0, "insid": 0, "docker": 0, "contain": 0, "configur": 0, "troubleshoot": 0, "code": 0, "main": 0, "control": 0, "media": 0, "queue": 0, "subson": 0, "api": 0, "track": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["index"], "filenames": ["index.rst"], "titles": ["AskNavidrome Alexa Skill Documentation"], "terms": {"i": 0, "an": 0, "which": 0, "allow": 0, "you": 0, "plai": 0, "music": 0, "host": 0, "compat": 0, "server": 0, "like": 0, "navidrom": 0, "thi": 0, "stream": 0, "own": 0, "collect": 0, "echo": 0, "devic": 0, "without": 0, "restrict": 0, "would": 0, "normal": 0, "face": 0, "regular": 0, "amazon": 0, "spotifi": 0, "skip": 0, "backward": 0, "forward": 0, "current": 0, "playlist": 0, "limit": 0, "avoid": 0, "pai": 0, "subscript": 0, "cost": 0, "being": 0, "forc": 0, "listen": 0, "advert": 0, "interv": 0, "actual": 0, "us": 0, "have": 0, "alreadi": 0, "paid": 0, "directli": 0, "wa": 0, "inspir": 0, "askson": 0, "howev": 0, "miss": 0, "two": 0, "featur": 0, "abil": 0, "individu": 0, "song": 0, "instead": 0, "contribut": 0, "project": 0, "opt": 0, "new": 0, "base": 0, "kit": 0, "sdk": 0, "python": 0, "ha": 0, "been": 0, "updat": 0, "more": 0, "recent": 0, "than": 0, "flask": 0, "ask": 0, "replac": 0, "doe": 0, "implement": 0, "all": 0, "": 0, "viabl": 0, "altern": 0, "those": 0, "simpl": 0, "let": 0, "The": 0, "usernam": 0, "password": 0, "store": 0, "clear": 0, "text": 0, "As": 0, "need": 0, "publicli": 0, "access": 0, "chanc": 0, "could": 0, "compromis": 0, "pleas": 0, "do": 0, "administr": 0, "account": 0, "ani": 0, "other": 0, "softwar": 0, "distribut": 0, "under": 0, "mit": 0, "licens": 0, "warranti": 0, "provid": 0, "In": 0, "order": 0, "convert": 0, "digit": 0, "format": 0, "mp3": 0, "There": 0, "ar": 0, "mani": 0, "tutori": 0, "avail": 0, "help": 0, "awar": 0, "type": 0, "file": 0, "can": 0, "should": 0, "review": 0, "befor": 0, "meet": 0, "thei": 0, "transcod": 0, "them": 0, "articl": 0, "explain": 0, "audio": 0, "A": 0, "flavour": 0, "For": 0, "inform": 0, "get": 0, "set": 0, "up": 0, "check": 0, "out": 0, "websit": 0, "must": 0, "port": 0, "443": 0, "serv": 0, "request": 0, "http": 0, "valid": 0, "tl": 0, "certif": 0, "dictat": 0, "unabl": 0, "from": 0, "internet": 0, "addit": 0, "abl": 0, "mobil": 0, "app": 0, "too": 0, "free": 0, "encrypt": 0, "dynam": 0, "dn": 0, "make": 0, "afraid": 0, "org": 0, "tag": 0, "mai": 0, "seem": 0, "obviou": 0, "sure": 0, "accur": 0, "artist": 0, "titl": 0, "number": 0, "etc": 0, "onli": 0, "wai": 0, "identifi": 0, "If": 0, "tool": 0, "look": 0, "musicbrainz": 0, "picard": 0, "someth": 0, "consist": 0, "part": 0, "connect": 0, "easiest": 0, "enabl": 0, "behind": 0, "revers": 0, "proxi": 0, "also": 0, "name": 0, "descript": 0, "exampl": 0, "navisonicplaymusicbyartist": 0, "specif": 0, "where": 0, "my": 0, "mind": 0, "pixi": 0, "navisonicplayalbumbyartist": 0, "album": 0, "blue": 0, "beatl": 0, "navisonicplaysongbyartist": 0, "navisonicplayplaylist": 0, "work": 0, "navisonicplaymusicbygenr": 0, "genr": 0, "jazz": 0, "navisonicplaymusicrandom": 0, "random": 0, "mix": 0, "navisonicplayfavouritesong": 0, "star": 0, "favourit": 0, "navisonicsongdetail": 0, "give": 0, "detail": 0, "what": 0, "navisonicstarsong": 0, "navisonicunstarsong": 0, "unstar": 0, "unfavourit": 0, "follow": 0, "next": 0, "previou": 0, "back": 0, "paus": 0, "resum": 0, "due": 0, "oper": 0, "some": 0, "full": 0, "catalog": 0, "content": 0, "defeat": 0, "purpos": 0, "search": 0, "becaus": 0, "custom": 0, "along": 0, "audioplay": 0, "interfac": 0, "open": 0, "sai": 0, "navison": 0, "expect": 0, "when": 0, "invoc": 0, "want": 0, "invok": 0, "call": 0, "while": 0, "given": 0, "automat": 0, "login": 0, "builder": 0, "develop": 0, "com": 0, "same": 0, "click": 0, "wish": 0, "word": 0, "warn": 0, "rais": 0, "found": 0, "singl": 0, "still": 0, "test": 0, "It": 0, "hard": 0, "find": 0, "good": 0, "so": 0, "feel": 0, "experi": 0, "primari": 0, "local": 0, "extrem": 0, "import": 0, "match": 0, "error": 0, "messag": 0, "gener": 0, "issu": 0, "quit": 0, "difficult": 0, "via": 0, "android": 0, "troubl": 0, "default": 0, "u": 0, "first": 0, "save": 0, "few": 0, "hour": 0, "sync": 0, "No": 0, "choos": 0, "model": 0, "provis": 0, "method": 0, "backend": 0, "resourc": 0, "again": 0, "templat": 0, "start": 0, "scratch": 0, "continu": 0, "wait": 0, "upload": 0, "interact": 0, "json": 0, "editor": 0, "delet": 0, "everyth": 0, "past": 0, "To": 0, "add": 0, "each": 0, "playlist_nam": 0, "slot": 0, "maintain": 0, "list": 0, "asknavison": 0, "remov": 0, "button": 0, "done": 0, "player": 0, "endpoint": 0, "locat": 0, "select": 0, "enter": 0, "url": 0, "region": 0, "box": 0, "ssl": 0, "depend": 0, "trust": 0, "author": 0, "build": 0, "process": 0, "take": 0, "minut": 0, "just": 0, "now": 0, "publish": 0, "anyon": 0, "possibl": 0, "credenti": 0, "retriev": 0, "written": 0, "recommend": 0, "whichev": 0, "well": 0, "known": 0, "One": 0, "sever": 0, "caddi": 0, "apach": 0, "nginx": 0, "rememb": 0, "mean": 0, "3": 0, "python3": 0, "git": 0, "scm": 0, "directori": 0, "chang": 0, "clone": 0, "repositori": 0, "github": 0, "cd": 0, "rosskouk": 0, "folder": 0, "environ": 0, "variabl": 0, "execut": 0, "applic": 0, "option": 0, "section": 0, "navi_skill_id": 0, "id": 0, "navi_song_count": 0, "50": 0, "navi_url": 0, "navi_us": 0, "navi_pass": 0, "navi_port": 0, "navi_api_path": 0, "rest": 0, "navi_api_v": 0, "1": 0, "16": 0, "navi_debug": 0, "0": 0, "py": 0, "dockerfil": 0, "prebuilt": 0, "pass": 0, "command": 0, "p": 0, "5000": 0, "e": 0, "ghcr": 0, "io": 0, "kubernet": 0, "pod": 0, "side": 0, "car": 0, "renew": 0, "ingress": 0, "read": 0, "prevent": 0, "amzn1": 0, "xxxxxxxx": 0, "xxxx": 0, "xxxxxxxxxxxx": 0, "minimum": 0, "ensur": 0, "ad": 0, "least": 0, "valu": 0, "user": 0, "bob": 0, "sup3rstrongp": 0, "ssword": 0, "path": 0, "haven": 0, "t": 0, "anyth": 0, "version": 0, "debug": 0, "disabl": 0, "littl": 0, "frustrat": 0, "here": 0, "best": 0, "understand": 0, "effect": 0, "function": 0, "noth": 0, "translat": 0, "perform": 0, "task": 0, "veri": 0, "go": 0, "wrong": 0, "thing": 0, "mismatch": 0, "happen": 0, "try": 0, "correctli": 0, "cannot": 0, "commun": 0, "might": 0, "phrase": 0, "consol": 0, "includ": 0, "me": 0, "though": 0, "log": 0, "page": 0, "show": 0, "histori": 0, "buffer": 0, "note": 0, "differ": 0, "queu": 0, "finish": 0, "thought": 0, "sent": 0, "respons": 0, "between": 0, "simul": 0, "uncov": 0, "hidden": 0, "tick": 0, "instruct": 0, "microphon": 0, "after": 0, "scroll": 0, "down": 0, "through": 0, "entri": 0, "were": 0, "thrown": 0, "class": 0, "checkaudiointerfacehandl": 0, "handler": 0, "thu": 0, "respond": 0, "unsupport": 0, "much": 0, "can_handl": 0, "handler_input": 0, "handlerinput": 0, "bool": 0, "return": 0, "true": 0, "handl": 0, "input": 0, "paramet": 0, "instanc": 0, "envelop": 0, "boolean": 0, "tell": 0, "dispatch": 0, "none": 0, "union": 0, "generalexceptionhandl": 0, "except": 0, "print": 0, "dure": 0, "whether": 0, "object": 0, "helphandl": 0, "helpint": 0, "launchrequesthandl": 0, "launchrequest": 0, "navigatehomeint": 0, "loggingrequestinterceptor": 0, "intercept": 0, "loggingresponseinterceptor": 0, "ask_sdk_model": 0, "result": 0, "shuffl": 0, "exist": 0, "nextplaybackhandl": 0, "nextint": 0, "pauseplaybackhandl": 0, "stop": 0, "cancel": 0, "pausecommandissu": 0, "event": 0, "playbackfailedeventhandl": 0, "playbackfail": 0, "direct": 0, "receiv": 0, "restart": 0, "output": 0, "speech": 0, "playbackfinishedhandl": 0, "playbackfinish": 0, "confirm": 0, "complet": 0, "send": 0, "playbacknearlyfinishedhandl": 0, "playbacknearlyfinish": 0, "live": 0, "playbackstartedhandl": 0, "playbackstart": 0, "began": 0, "playbackstoppedhandl": 0, "playbackstop": 0, "previousplaybackhandl": 0, "previousint": 0, "resumeplaybackhandl": 0, "playaudio": 0, "skilleventhandl": 0, "close": 0, "session": 0, "end": 0, "skillen": 0, "skilldis": 0, "systemexceptionhandl": 0, "system": 0, "exceptionencount": 0, "view_buff": 0, "view": 0, "play_queu": 0, "tabul": 0, "contin": 0, "dequ": 0, "view_histori": 0, "view_queu": 0, "add_screen_background": 0, "card_data": 0, "dict": 0, "audioitemmetadata": 0, "background": 0, "card": 0, "viewabl": 0, "screen": 0, "dictionari": 0, "data": 0, "present": 0, "enqueue_song": 0, "subsonicconnect": 0, "mediaqueu": 0, "song_id_list": 0, "enqueu": 0, "start_playback": 0, "mode": 0, "str": 0, "track_detail": 0, "begin": 0, "doc": 0, "refer": 0, "html": 0, "replace_al": 0, "immedi": 0, "playback": 0, "specifi": 0, "spoken": 0, "displai": 0, "media_queu": 0, "attribut": 0, "add_track": 0, "enqueue_next_track": 0, "earli": 0, "get_history_count": 0, "int": 0, "get_next_track": 0, "self": 0, "get_prevous_track": 0, "last": 0, "front": 0, "get_queue_count": 0, "reset": 0, "playbehaviour": 0, "syncronis": 0, "overwrit": 0, "correct": 0, "practic": 0, "action": 0, "current_track": 0, "caus": 0, "lose": 0, "real": 0, "posit": 0, "properti": 0, "hold": 0, "logger": 0, "subsonic_api": 0, "server_url": 0, "passwd": 0, "api_loc": 0, "api_vers": 0, "authent": 0, "against": 0, "compatib": 0, "append": 0, "albums_by_artist": 0, "build_random_song_list": 0, "count": 0, "build_song_list_from_album": 0, "length": 0, "keep": 0, "until": 0, "song_count": 0, "greater": 0, "equal": 0, "build_song_list_from_favourit": 0, "build_song_list_from_genr": 0, "accept": 0, "getgenr": 0, "build_song_list_from_playlist": 0, "get_song_detail": 0, "get_song_uri": 0, "uri": 0, "repres": 0, "embed": 0, "properli": 0, "ping": 0, "verifi": 0, "fals": 0, "search_album": 0, "term": 0, "search_artist": 0, "search_playlist": 0, "search_song": 0, "star_entri": 0, "entiti": 0, "unstar_entri": 0, "artist_id": 0, "album_id": 0, "track_no": 0, "year": 0, "durat": 0, "bitrat": 0, "offset": 0, "previous_id": 0, "releas": 0, "second": 0, "bit": 0, "rate": 0, "kbp": 0, "millisecond": 0}, "objects": {"": [[0, 0, 0, "-", "app"]], "app": [[0, 1, 1, "", "CheckAudioInterfaceHandler"], [0, 1, 1, "", "GeneralExceptionHandler"], [0, 1, 1, "", "HelpHandler"], [0, 1, 1, "", "LaunchRequestHandler"], [0, 1, 1, "", "LoggingRequestInterceptor"], [0, 1, 1, "", "LoggingResponseInterceptor"], [0, 1, 1, "", "NaviSonicPlayAlbumByArtist"], [0, 1, 1, "", "NaviSonicPlayFavouriteSongs"], [0, 1, 1, "", "NaviSonicPlayMusicByArtist"], [0, 1, 1, "", "NaviSonicPlayMusicByGenre"], [0, 1, 1, "", "NaviSonicPlayMusicRandom"], [0, 1, 1, "", "NaviSonicPlayPlaylist"], [0, 1, 1, "", "NaviSonicPlaySongByArtist"], [0, 1, 1, "", "NaviSonicSongDetails"], [0, 1, 1, "", "NaviSonicStarSong"], [0, 1, 1, "", "NaviSonicUnstarSong"], [0, 1, 1, "", "NextPlaybackHandler"], [0, 1, 1, "", "PausePlaybackHandler"], [0, 1, 1, "", "PlaybackFailedEventHandler"], [0, 1, 1, "", "PlaybackFinishedHandler"], [0, 1, 1, "", "PlaybackNearlyFinishedHandler"], [0, 1, 1, "", "PlaybackStartedHandler"], [0, 1, 1, "", "PlaybackStoppedHandler"], [0, 1, 1, "", "PreviousPlaybackHandler"], [0, 1, 1, "", "ResumePlaybackHandler"], [0, 1, 1, "", "SkillEventHandler"], [0, 1, 1, "", "SystemExceptionHandler"], [0, 3, 1, "", "view_buffer"], [0, 3, 1, "", "view_history"], [0, 3, 1, "", "view_queue"]], "app.CheckAudioInterfaceHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.GeneralExceptionHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.HelpHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.LaunchRequestHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.LoggingRequestInterceptor": [[0, 2, 1, "", "process"]], "app.LoggingResponseInterceptor": [[0, 2, 1, "", "process"]], "app.NaviSonicPlayAlbumByArtist": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.NaviSonicPlayFavouriteSongs": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.NaviSonicPlayMusicByArtist": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.NaviSonicPlayMusicByGenre": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.NaviSonicPlayMusicRandom": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.NaviSonicPlayPlaylist": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.NaviSonicPlaySongByArtist": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.NaviSonicSongDetails": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.NaviSonicStarSong": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.NaviSonicUnstarSong": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.NextPlaybackHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.PausePlaybackHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.PlaybackFailedEventHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.PlaybackFinishedHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.PlaybackNearlyFinishedHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.PlaybackStartedHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.PlaybackStoppedHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.PreviousPlaybackHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.ResumePlaybackHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.SkillEventHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "app.SystemExceptionHandler": [[0, 2, 1, "", "can_handle"], [0, 2, 1, "", "handle"]], "asknavidrome": [[0, 0, 0, "-", "controller"]], "asknavidrome.controller": [[0, 3, 1, "", "add_screen_background"], [0, 3, 1, "", "enqueue_songs"], [0, 3, 1, "", "start_playback"], [0, 3, 1, "", "stop"]], "asknavidrome.media_queue": [[0, 1, 1, "", "MediaQueue"]], "asknavidrome.media_queue.MediaQueue": [[0, 2, 1, "", "add_track"], [0, 4, 1, "", "buffer"], [0, 2, 1, "", "clear"], [0, 4, 1, "", "current_track"], [0, 2, 1, "", "enqueue_next_track"], [0, 2, 1, "", "get_history_count"], [0, 2, 1, "", "get_next_track"], [0, 2, 1, "", "get_prevous_track"], [0, 2, 1, "", "get_queue_count"], [0, 4, 1, "", "history"], [0, 4, 1, "", "logger"], [0, 4, 1, "", "queue"], [0, 2, 1, "", "shuffle"], [0, 2, 1, "", "sync"]], "asknavidrome.subsonic_api": [[0, 1, 1, "", "SubsonicConnection"]], "asknavidrome.subsonic_api.SubsonicConnection": [[0, 2, 1, "", "albums_by_artist"], [0, 2, 1, "", "build_random_song_list"], [0, 2, 1, "", "build_song_list_from_albums"], [0, 2, 1, "", "build_song_list_from_favourites"], [0, 2, 1, "", "build_song_list_from_genre"], [0, 2, 1, "", "build_song_list_from_playlist"], [0, 2, 1, "", "get_song_details"], [0, 2, 1, "", "get_song_uri"], [0, 2, 1, "", "ping"], [0, 2, 1, "", "search_album"], [0, 2, 1, "", "search_artist"], [0, 2, 1, "", "search_playlist"], [0, 2, 1, "", "search_song"], [0, 2, 1, "", "star_entry"], [0, 2, 1, "", "unstar_entry"]], "asknavidrome.track": [[0, 1, 1, "", "Track"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "attribute", "Python attribute"]}, "titleterms": {"asknavidrom": 0, "alexa": 0, "skill": 0, "document": 0, "requir": 0, "about": 0, "support": 0, "intent": 0, "instal": 0, "setup": 0, "creat": 0, "deploi": 0, "web": 0, "servic": 0, "run": 0, "your": 0, "pc": 0, "insid": 0, "docker": 0, "contain": 0, "configur": 0, "troubleshoot": 0, "code": 0, "main": 0, "control": 0, "media": 0, "queue": 0, "subson": 0, "api": 0, "track": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file