From 7b76a6b11aa5ab909e0f5f634e7dfea1f88c1cc0 Mon Sep 17 00:00:00 2001 From: Ross Stewart Date: Sat, 19 Nov 2022 16:25:26 +0000 Subject: [PATCH] Documentation update --- docs/_sources/index.rst.txt | 46 ++++++++++++++++-- docs/genindex.html | 15 ------ docs/index.html | 92 +++++++++++++++++++----------------- docs/objects.inv | Bin 1107 -> 1093 bytes docs/searchindex.js | 2 +- 5 files changed, 92 insertions(+), 63 deletions(-) diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt index d066d40..2730300 100644 --- a/docs/_sources/index.rst.txt +++ b/docs/_sources/index.rst.txt @@ -304,8 +304,10 @@ accessible. Run inside a Docker container ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -A Dockerfile has been provided and a prebuilt container is hosted on github.com. You can configure the service by passing environment variables to -the *docker run* command. +A Dockerfile has been provided and a prebuilt container is hosted on github.com. **Please note that the prebuilt container was created on an amd64 platform**. If you +require a different architecture such as arm for a Raspberry Pi, you will need to build a new image using the Dockerfile provided with the repository. + +You can configure the service by passing environment variables to the *docker run* command. .. code-block:: bash @@ -355,7 +357,7 @@ information to run: +----------------------+----------------------------------------------------------------+------------------------------------------------------+ | NAVI_API_VER | The version of the Subsonic API in use | 1.16.1 | +----------------------+----------------------------------------------------------------+------------------------------------------------------+ -| NAVI_DEBUG | Enable debugging, to disable to not set this variable | 1 | +| NAVI_DEBUG | Enable debugging, by setting this variable to 1, or 3. | 1 | +----------------------+----------------------------------------------------------------+------------------------------------------------------+ @@ -376,7 +378,7 @@ Troubleshooting and debugging Alexa skills can be a little frustrating, here are #. Enable debugging and look at the logs generated by the web service. -#. When debugging is enabled the following web pages are available from the web service +#. When level 3 debugging is enabled the following web pages are available from the web service * url-to-web-service/queue @@ -410,6 +412,42 @@ Troubleshooting and debugging Alexa skills can be a little frustrating, here are * After you have entered a command you will get the Alexa response back, scroll down to the **Device Log** section and click through the entries the entries will contain any errors that were thrown. +Debug Options +------------- + +You can enable the following debug options by setting the NAVI_DEBUG environment variable. + +* 0 = Logging set to WARNING and higher. +* 1 = Logging set to INFO and higher. +* 2 = Logging set to DEBUG and higher and request / response + interceptors are enabled. +* 3 = All features of level 2 and the web ui. Note the UI + will be **publicly** available while this is enabled. + +Known Issues +------------ + +#. The skill appears to work but no music is played. Errors similar to below appear in the web service log + + .. code-block:: bash + + 2022-11-19 13:16:45,478 - root - DEBUG - In PlaybackFailedHandler + 2022-11-19 13:16:45,479 - root - ERROR - Playback Failed: {'message': 'Device playback error', 'object_type': 'MEDIA_ERROR_UNKNOWN'} + 2022-11-19 13:16:45,480 - werkzeug - INFO - 10.44.17.62 - - [19/Nov/2022 13:16:45] "POST / HTTP/1.1" 200 - + 2022-11-19 13:16:48,599 - root - DEBUG - In PlaybackFailedHandler + 2022-11-19 13:16:48,600 - root - ERROR - Playback Failed: {'message': 'Device playback error','object_type': 'MEDIA_ERROR_INTERNAL_DEVICE_ERROR'} + + * I have not found a reason as to why this happens from time to time, however it can be resolved by doing a hard reboot of your Echo device. + Disconnect the power for a minute and plug it back in then try again and music should play + +#. The following error is displayed when you try to run the Docker container + + .. code-block:: bash + + exec /opt/env/bin/python3: exec format error + + * You are using the prebuilt container on a non amd64 based system. You will need to build your own Docker image using the Dockerfile included + with the repository. Code Documentation ****************** diff --git a/docs/genindex.html b/docs/genindex.html index cab414a..255f30a 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -57,7 +57,6 @@ | S | T | U - | V

A

@@ -435,20 +434,6 @@ -

V

- - - -
-
diff --git a/docs/index.html b/docs/index.html index e14af22..7377560 100644 --- a/docs/index.html +++ b/docs/index.html @@ -327,8 +327,9 @@ python3 app.py

Run inside a Docker container

-

A Dockerfile has been provided and a prebuilt container is hosted on github.com. You can configure the service by passing environment variables to -the docker run command.

+

A Dockerfile has been provided and a prebuilt container is hosted on github.com. Please note that the prebuilt container was created on an amd64 platform. If you +require a different architecture such as arm for a Raspberry Pi, you will need to build a new image using the Dockerfile provided with the repository.

+

You can configure the service by passing environment variables to the docker run command.

docker run -p 5000:5000 \
 -e NAVI_SKILL_ID=<your-skill-id> \
 -e NAVI_SONG_COUNT=50 \
@@ -395,7 +396,7 @@ using Navidrome and haven’t changed anything

1.16.1

NAVI_DEBUG

-

Enable debugging, to disable to not set this variable

+

Enable debugging, by setting this variable to 1, or 3.

1

@@ -419,7 +420,7 @@ want to make some changes though.

  • Enable debugging and look at the logs generated by the web service.

  • -
  • When debugging is enabled the following web pages are available from the web service

    +
  • When level 3 debugging is enabled the following web pages are available from the web service

    • url-to-web-service/queue

        @@ -453,6 +454,45 @@ the entries will contain any errors that were thrown.

    • +
      +

      Debug Options

      +

      You can enable the following debug options by setting the NAVI_DEBUG environment variable.

      +
        +
      • 0 = Logging set to WARNING and higher.

      • +
      • 1 = Logging set to INFO and higher.

      • +
      • 2 = Logging set to DEBUG and higher and request / response +interceptors are enabled.

      • +
      • 3 = All features of level 2 and the web ui. Note the UI +will be publicly available while this is enabled.

      • +
      +
      +
      +

      Known Issues

      +
        +
      1. The skill appears to work but no music is played. Errors similar to below appear in the web service log

        +
        2022-11-19 13:16:45,478 - root - DEBUG - In PlaybackFailedHandler
        +2022-11-19 13:16:45,479 - root - ERROR - Playback Failed: {'message': 'Device playback error', 'object_type': 'MEDIA_ERROR_UNKNOWN'}
        +2022-11-19 13:16:45,480 - werkzeug - INFO - 10.44.17.62 - - [19/Nov/2022 13:16:45] "POST / HTTP/1.1" 200 -
        +2022-11-19 13:16:48,599 - root - DEBUG - In PlaybackFailedHandler
        +2022-11-19 13:16:48,600 - root - ERROR - Playback Failed: {'message': 'Device playback error','object_type': 'MEDIA_ERROR_INTERNAL_DEVICE_ERROR'}
        +
        +
        +
          +
        • I have not found a reason as to why this happens from time to time, however it can be resolved by doing a hard reboot of your Echo device. +Disconnect the power for a minute and plug it back in then try again and music should play

        • +
        +
      2. +
      3. The following error is displayed when you try to run the Docker container

        +
        exec /opt/env/bin/python3: exec format error
        +
        +
        +
          +
        • You are using the prebuilt container on a non amd64 based system. You will need to build your own Docker image using the Dockerfile included +with the repository.

        • +
        +
      4. +
      +
  • Code Documentation

    @@ -549,20 +589,6 @@ the entries will contain any errors that were thrown.

    -

    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
    @@ -2116,27 +2142,6 @@ during dispatch.

    -
    -
    -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

    @@ -2883,7 +2888,11 @@ is working

    -
  • Troubleshooting
  • +
  • Troubleshooting +
  • Code Documentation
    • AskNavidrome main
    • AskNavidrome controller
        diff --git a/docs/objects.inv b/docs/objects.inv index 7d1297371933edbfeb2e10df255e4151deabef4c..a420e918a99c14a4e604196692b263b69fdd8276 100644 GIT binary patch delta 983 zcmV;|11S8{2*n7He1FSs+c*@4_jw8d(`|(5wmVNR(*lzqZD!U2O&v>wX;R@Oh~9ok zQA(sls(EN;VL+Dn{paWH@Itz-==x75Sz8Xpp9K>&Je93E@jt@5>kq~C73sS2a|`si zvo(`HgaLIR6uuKtb5LG@a-wzdan7FyOG-r54$p%LFs-c7B7boLe}e!;_}3>2oncbM zdEcNA#AB%BEqW8QEdv_->GA z9dB`Erz8c3#Rk@$6dDpDzX4-I-;zgmF9oA_ob)@sx2M1Qoia?DGoiOZL}&d*BthUC zd6ZT$1MW?uF@OG-WNHOosU#@eSj}ik2Q0u;|4Wf{0hh!SB)A{A3(W_ORQ{La7+bB@%G|w7|vaXYRR0^@Xr zjwA1g)qu0Qh9JDI;*sb`eRBgF>aUL=BKNb~AjbH%2vUFvrdz0y-j`I0@mC5s`WA@d zeVX@GHlYUVIyeoVbPTovODMtlD*-GlyAE%84kcM$2t>jP9+|WnnNrp%jOh)9INBZF z>;d4$imY$Vrf11IF|%{qi}yDks`>!Wb%eXZolZ4sp~ zO7hX~xvREyvLtm~X{rE3<$JhM(u&&a9ju_R(d*A<0bqK##G%n+)_1U zhagW-Gg1xC%NzfEcGrHM9$M9?u?kV0xgoT-hkrxpUt)}6dut#~h;p|oUFwEfrQ8&I zsoI66rV%6D&M;4VHDIdNo!O-7E9!=_$sw56Ugs78w+7@B3~iXDwqw&}=vpqDCdAH|$IAQh&u1wFgv=C~WX{Nx#NUVNYTsAn`LZO3 zKYy2f7_Tce+$#)ez2f=hpLMH)qpDDu_lMFNw2PY;j>8ivh9gSx zMN)U55{CGCT)7SUO0cfKo<0P%o3OVJVP{{@V0XQ16|tm42QR_!E-?4u`yFZE>VM9C FZa-?Rb3_xTl;+HI`f?cGi9x70-GO}n-je8xt@0GE$x{O=3K z&e(|^149;(CN|H@3mhK~AR!9TeLV5nP$>Q=2&>_#Z1su$=AYgEUfkXwA<9oJ;N#BJ zg#Ta~ zLPZ!~QwXEK0~KLTCoLn~O{p;AFJu^Qf5I;VN{3lnLLxja;(;h{8p4`^?IXu61K)JK z#+5>H3>FLRSP9M)B=r0W4DI?Joyj9-1V2#J?daZ|{_J*A6Qwu0UI!x<>kW|vfv@Py zjU*cElSak(pMR6719+j5pm1jt!6^$c15^FaMbZUq5|fbNzUQtq?=@2SpO)jNXzL!k z%K0FXfV)2$87?D}YWbN@VBN=&65>-X)%Q#zlJ_e_6#Q+#1c&#WO7Z5Qv4j5b>6$P?F`DKp-sPOt?{zDP@_8F}``v{+}*+8yS8cvb7H_K3r+hu_;_)OrxYHtn)@AF_7 zb|P;yZfz0EWf$1`*I2c_(N-OqEjwz-PqtF!OiNCOY1_K-TP90X*OkH&fK@Kg8p#c- zlT4Jr`VmxWJln@hxI#)-Vu<=w4K5R_qL59WRQIE>f8@7zx_UbDVm z7h-a^n57q&QTjgW%biqSVLS8LL`YX}`d8 T&_DCcqksQ^8o2o%2Bw{)-JAskNavidrome 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, "navisonicrandomisequeu": 0, "shuffl": 0, "randomis": 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, "how": 0, "invok": 0, "voic": 0, "command": 0, "success": 0, "thank": 0, "raul824": 0, "navison": 0, "rock": 0, "problem": 0, "open": 0, "manual": 0, "similarli": 0, "done": 0, "when": 0, "want": 0, "call": 0, "sai": 0, "while": 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, "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, "invoc": 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, "p": 0, "5000": 0, "e": 0, "ghcr": 0, "io": 0, "kubernet": 0, "pod": 0, "side": 0, "car": 0, "automat": 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, "given": 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, "", "NaviSonicRandomiseQueue"], [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.NaviSonicRandomiseQueue": [[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": 8, "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": 57}, "alltitles": {"AskNavidrome Alexa Skill Documentation": [[0, "asknavidrome-alexa-skill-documentation"]], "Requirements": [[0, "requirements"]], "About the AskNavidrome Skill": [[0, "about-the-asknavidrome-skill"]], "Supported Intents": [[0, "supported-intents"]], "Installation and Setup": [[0, "installation-and-setup"]], "Creating the AskNavidrome Alexa Skill": [[0, "creating-the-asknavidrome-alexa-skill"]], "Deploying the AskNavidrome Web Service": [[0, "deploying-the-asknavidrome-web-service"]], "Run on your PC": [[0, "run-on-your-pc"]], "Run inside a Docker container": [[0, "run-inside-a-docker-container"]], "Configuration": [[0, "configuration"]], "Troubleshooting": [[0, "troubleshooting"]], "Code Documentation": [[0, "code-documentation"]], "AskNavidrome main": [[0, "module-app"]], "AskNavidrome controller": [[0, "module-asknavidrome.controller"]], "AskNavidrome media queue": [[0, "asknavidrome-media-queue"]], "AskNavidrome subsonic API": [[0, "asknavidrome-subsonic-api"]], "AskNavidrome track": [[0, "asknavidrome-track"]]}, "indexentries": {"checkaudiointerfacehandler (class in app)": [[0, "app.CheckAudioInterfaceHandler"]], "generalexceptionhandler (class in app)": [[0, "app.GeneralExceptionHandler"]], "helphandler (class in app)": [[0, "app.HelpHandler"]], "launchrequesthandler (class in app)": [[0, "app.LaunchRequestHandler"]], "loggingrequestinterceptor (class in app)": [[0, "app.LoggingRequestInterceptor"]], "loggingresponseinterceptor (class in app)": [[0, "app.LoggingResponseInterceptor"]], "mediaqueue (class in asknavidrome.media_queue)": [[0, "asknavidrome.media_queue.MediaQueue"]], "navisonicplayalbumbyartist (class in app)": [[0, "app.NaviSonicPlayAlbumByArtist"]], "navisonicplayfavouritesongs (class in app)": [[0, "app.NaviSonicPlayFavouriteSongs"]], "navisonicplaymusicbyartist (class in app)": [[0, "app.NaviSonicPlayMusicByArtist"]], "navisonicplaymusicbygenre (class in app)": [[0, "app.NaviSonicPlayMusicByGenre"]], "navisonicplaymusicrandom (class in app)": [[0, "app.NaviSonicPlayMusicRandom"]], "navisonicplayplaylist (class in app)": [[0, "app.NaviSonicPlayPlaylist"]], "navisonicplaysongbyartist (class in app)": [[0, "app.NaviSonicPlaySongByArtist"]], "navisonicrandomisequeue (class in app)": [[0, "app.NaviSonicRandomiseQueue"]], "navisonicsongdetails (class in app)": [[0, "app.NaviSonicSongDetails"]], "navisonicstarsong (class in app)": [[0, "app.NaviSonicStarSong"]], "navisonicunstarsong (class in app)": [[0, "app.NaviSonicUnstarSong"]], "nextplaybackhandler (class in app)": [[0, "app.NextPlaybackHandler"]], "pauseplaybackhandler (class in app)": [[0, "app.PausePlaybackHandler"]], "playbackfailedeventhandler (class in app)": [[0, "app.PlaybackFailedEventHandler"]], "playbackfinishedhandler (class in app)": [[0, "app.PlaybackFinishedHandler"]], "playbacknearlyfinishedhandler (class in app)": [[0, "app.PlaybackNearlyFinishedHandler"]], "playbackstartedhandler (class in app)": [[0, "app.PlaybackStartedHandler"]], "playbackstoppedhandler (class in app)": [[0, "app.PlaybackStoppedHandler"]], "previousplaybackhandler (class in app)": [[0, "app.PreviousPlaybackHandler"]], "resumeplaybackhandler (class in app)": [[0, "app.ResumePlaybackHandler"]], "skilleventhandler (class in app)": [[0, "app.SkillEventHandler"]], "subsonicconnection (class in asknavidrome.subsonic_api)": [[0, "asknavidrome.subsonic_api.SubsonicConnection"]], "systemexceptionhandler (class in app)": [[0, "app.SystemExceptionHandler"]], "track (class in asknavidrome.track)": [[0, "asknavidrome.track.Track"]], "add_screen_background() (in module asknavidrome.controller)": [[0, "asknavidrome.controller.add_screen_background"]], "add_track() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.add_track"]], "albums_by_artist() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.albums_by_artist"]], "app": [[0, "module-app"]], "asknavidrome.controller": [[0, "module-asknavidrome.controller"]], "buffer (asknavidrome.media_queue.mediaqueue attribute)": [[0, "asknavidrome.media_queue.MediaQueue.buffer"]], "build_random_song_list() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.build_random_song_list"]], "build_song_list_from_albums() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_albums"]], "build_song_list_from_favourites() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_favourites"]], "build_song_list_from_genre() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_genre"]], "build_song_list_from_playlist() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_playlist"]], "can_handle() (app.checkaudiointerfacehandler method)": [[0, "app.CheckAudioInterfaceHandler.can_handle"]], "can_handle() (app.generalexceptionhandler method)": [[0, "app.GeneralExceptionHandler.can_handle"]], "can_handle() (app.helphandler method)": [[0, "app.HelpHandler.can_handle"]], "can_handle() (app.launchrequesthandler method)": [[0, "app.LaunchRequestHandler.can_handle"]], "can_handle() (app.navisonicplayalbumbyartist method)": [[0, "app.NaviSonicPlayAlbumByArtist.can_handle"]], "can_handle() (app.navisonicplayfavouritesongs method)": [[0, "app.NaviSonicPlayFavouriteSongs.can_handle"]], "can_handle() (app.navisonicplaymusicbyartist method)": [[0, "app.NaviSonicPlayMusicByArtist.can_handle"]], "can_handle() (app.navisonicplaymusicbygenre method)": [[0, "app.NaviSonicPlayMusicByGenre.can_handle"]], "can_handle() (app.navisonicplaymusicrandom method)": [[0, "app.NaviSonicPlayMusicRandom.can_handle"]], "can_handle() (app.navisonicplayplaylist method)": [[0, "app.NaviSonicPlayPlaylist.can_handle"]], "can_handle() (app.navisonicplaysongbyartist method)": [[0, "app.NaviSonicPlaySongByArtist.can_handle"]], "can_handle() (app.navisonicrandomisequeue method)": [[0, "app.NaviSonicRandomiseQueue.can_handle"]], "can_handle() (app.navisonicsongdetails method)": [[0, "app.NaviSonicSongDetails.can_handle"]], "can_handle() (app.navisonicstarsong method)": [[0, "app.NaviSonicStarSong.can_handle"]], "can_handle() (app.navisonicunstarsong method)": [[0, "app.NaviSonicUnstarSong.can_handle"]], "can_handle() (app.nextplaybackhandler method)": [[0, "app.NextPlaybackHandler.can_handle"]], "can_handle() (app.pauseplaybackhandler method)": [[0, "app.PausePlaybackHandler.can_handle"]], "can_handle() (app.playbackfailedeventhandler method)": [[0, "app.PlaybackFailedEventHandler.can_handle"]], "can_handle() (app.playbackfinishedhandler method)": [[0, "app.PlaybackFinishedHandler.can_handle"]], "can_handle() (app.playbacknearlyfinishedhandler method)": [[0, "app.PlaybackNearlyFinishedHandler.can_handle"]], "can_handle() (app.playbackstartedhandler method)": [[0, "app.PlaybackStartedHandler.can_handle"]], "can_handle() (app.playbackstoppedhandler method)": [[0, "app.PlaybackStoppedHandler.can_handle"]], "can_handle() (app.previousplaybackhandler method)": [[0, "app.PreviousPlaybackHandler.can_handle"]], "can_handle() (app.resumeplaybackhandler method)": [[0, "app.ResumePlaybackHandler.can_handle"]], "can_handle() (app.skilleventhandler method)": [[0, "app.SkillEventHandler.can_handle"]], "can_handle() (app.systemexceptionhandler method)": [[0, "app.SystemExceptionHandler.can_handle"]], "clear() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.clear"]], "current_track (asknavidrome.media_queue.mediaqueue attribute)": [[0, "asknavidrome.media_queue.MediaQueue.current_track"]], "enqueue_next_track() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.enqueue_next_track"]], "enqueue_songs() (in module asknavidrome.controller)": [[0, "asknavidrome.controller.enqueue_songs"]], "get_history_count() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.get_history_count"]], "get_next_track() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.get_next_track"]], "get_prevous_track() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.get_prevous_track"]], "get_queue_count() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.get_queue_count"]], "get_song_details() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.get_song_details"]], "get_song_uri() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.get_song_uri"]], "handle() (app.checkaudiointerfacehandler method)": [[0, "app.CheckAudioInterfaceHandler.handle"]], "handle() (app.generalexceptionhandler method)": [[0, "app.GeneralExceptionHandler.handle"]], "handle() (app.helphandler method)": [[0, "app.HelpHandler.handle"]], "handle() (app.launchrequesthandler method)": [[0, "app.LaunchRequestHandler.handle"]], "handle() (app.navisonicplayalbumbyartist method)": [[0, "app.NaviSonicPlayAlbumByArtist.handle"]], "handle() (app.navisonicplayfavouritesongs method)": [[0, "app.NaviSonicPlayFavouriteSongs.handle"]], "handle() (app.navisonicplaymusicbyartist method)": [[0, "app.NaviSonicPlayMusicByArtist.handle"]], "handle() (app.navisonicplaymusicbygenre method)": [[0, "app.NaviSonicPlayMusicByGenre.handle"]], "handle() (app.navisonicplaymusicrandom method)": [[0, "app.NaviSonicPlayMusicRandom.handle"]], "handle() (app.navisonicplayplaylist method)": [[0, "app.NaviSonicPlayPlaylist.handle"]], "handle() (app.navisonicplaysongbyartist method)": [[0, "app.NaviSonicPlaySongByArtist.handle"]], "handle() (app.navisonicrandomisequeue method)": [[0, "app.NaviSonicRandomiseQueue.handle"]], "handle() (app.navisonicsongdetails method)": [[0, "app.NaviSonicSongDetails.handle"]], "handle() (app.navisonicstarsong method)": [[0, "app.NaviSonicStarSong.handle"]], "handle() (app.navisonicunstarsong method)": [[0, "app.NaviSonicUnstarSong.handle"]], "handle() (app.nextplaybackhandler method)": [[0, "app.NextPlaybackHandler.handle"]], "handle() (app.pauseplaybackhandler method)": [[0, "app.PausePlaybackHandler.handle"]], "handle() (app.playbackfailedeventhandler method)": [[0, "app.PlaybackFailedEventHandler.handle"]], "handle() (app.playbackfinishedhandler method)": [[0, "app.PlaybackFinishedHandler.handle"]], "handle() (app.playbacknearlyfinishedhandler method)": [[0, "app.PlaybackNearlyFinishedHandler.handle"]], "handle() (app.playbackstartedhandler method)": [[0, "app.PlaybackStartedHandler.handle"]], "handle() (app.playbackstoppedhandler method)": [[0, "app.PlaybackStoppedHandler.handle"]], "handle() (app.previousplaybackhandler method)": [[0, "app.PreviousPlaybackHandler.handle"]], "handle() (app.resumeplaybackhandler method)": [[0, "app.ResumePlaybackHandler.handle"]], "handle() (app.skilleventhandler method)": [[0, "app.SkillEventHandler.handle"]], "handle() (app.systemexceptionhandler method)": [[0, "app.SystemExceptionHandler.handle"]], "history (asknavidrome.media_queue.mediaqueue attribute)": [[0, "asknavidrome.media_queue.MediaQueue.history"]], "logger (asknavidrome.media_queue.mediaqueue attribute)": [[0, "asknavidrome.media_queue.MediaQueue.logger"]], "module": [[0, "module-app"], [0, "module-asknavidrome.controller"]], "ping() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.ping"]], "process() (app.loggingrequestinterceptor method)": [[0, "app.LoggingRequestInterceptor.process"]], "process() (app.loggingresponseinterceptor method)": [[0, "app.LoggingResponseInterceptor.process"]], "queue (asknavidrome.media_queue.mediaqueue attribute)": [[0, "asknavidrome.media_queue.MediaQueue.queue"]], "search_album() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.search_album"]], "search_artist() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.search_artist"]], "search_playlist() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.search_playlist"]], "search_song() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.search_song"]], "shuffle() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.shuffle"]], "star_entry() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.star_entry"]], "start_playback() (in module asknavidrome.controller)": [[0, "asknavidrome.controller.start_playback"]], "stop() (in module asknavidrome.controller)": [[0, "asknavidrome.controller.stop"]], "sync() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.sync"]], "unstar_entry() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.unstar_entry"]], "view_buffer() (in module app)": [[0, "app.view_buffer"]], "view_history() (in module app)": [[0, "app.view_history"]], "view_queue() (in module app)": [[0, "app.view_queue"]]}}) \ 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, "navisonicrandomisequeu": 0, "shuffl": 0, "randomis": 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, "how": 0, "invok": 0, "voic": 0, "command": 0, "success": 0, "thank": 0, "raul824": 0, "navison": 0, "rock": 0, "problem": 0, "open": 0, "manual": 0, "similarli": 0, "done": 0, "when": 0, "want": 0, "call": 0, "sai": 0, "while": 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, "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, "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, "invoc": 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, "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, "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, "note": 0, "amd64": 0, "platform": 0, "differ": 0, "architectur": 0, "arm": 0, "raspberri": 0, "pi": 0, "imag": 0, "pass": 0, "p": 0, "5000": 0, "e": 0, "ghcr": 0, "io": 0, "kubernet": 0, "pod": 0, "side": 0, "car": 0, "automat": 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, "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, "level": 0, "page": 0, "show": 0, "histori": 0, "buffer": 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, "higher": 0, "info": 0, "2": 0, "interceptor": 0, "ui": 0, "appear": 0, "similar": 0, "below": 0, "2022": 0, "11": 0, "19": 0, "13": 0, "45": 0, "478": 0, "root": 0, "playbackfailedhandl": 0, "479": 0, "playback": 0, "fail": 0, "object_typ": 0, "media_error_unknown": 0, "480": 0, "werkzeug": 0, "10": 0, "44": 0, "17": 0, "62": 0, "nov": 0, "post": 0, "200": 0, "48": 0, "599": 0, "600": 0, "media_error_internal_device_error": 0, "reason": 0, "why": 0, "time": 0, "resolv": 0, "reboot": 0, "disconnect": 0, "power": 0, "plug": 0, "displai": 0, "exec": 0, "env": 0, "bin": 0, "non": 0, "system": 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, "given": 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, "exceptionencount": 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, "dequ": 0, "start_playback": 0, "mode": 0, "str": 0, "track_detail": 0, "begin": 0, "doc": 0, "refer": 0, "html": 0, "replace_al": 0, "immedi": 0, "specifi": 0, "spoken": 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, "", "NaviSonicRandomiseQueue"], [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"]], "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.NaviSonicRandomiseQueue": [[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, "debug": 0, "option": 0, "known": 0, "issu": 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": 8, "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": 57}, "alltitles": {"AskNavidrome Alexa Skill Documentation": [[0, "asknavidrome-alexa-skill-documentation"]], "Requirements": [[0, "requirements"]], "About the AskNavidrome Skill": [[0, "about-the-asknavidrome-skill"]], "Supported Intents": [[0, "supported-intents"]], "Installation and Setup": [[0, "installation-and-setup"]], "Creating the AskNavidrome Alexa Skill": [[0, "creating-the-asknavidrome-alexa-skill"]], "Deploying the AskNavidrome Web Service": [[0, "deploying-the-asknavidrome-web-service"]], "Run on your PC": [[0, "run-on-your-pc"]], "Run inside a Docker container": [[0, "run-inside-a-docker-container"]], "Configuration": [[0, "configuration"]], "Troubleshooting": [[0, "troubleshooting"]], "Debug Options": [[0, "debug-options"]], "Known Issues": [[0, "known-issues"]], "Code Documentation": [[0, "code-documentation"]], "AskNavidrome main": [[0, "module-app"]], "AskNavidrome controller": [[0, "module-asknavidrome.controller"]], "AskNavidrome media queue": [[0, "asknavidrome-media-queue"]], "AskNavidrome subsonic API": [[0, "asknavidrome-subsonic-api"]], "AskNavidrome track": [[0, "asknavidrome-track"]]}, "indexentries": {"checkaudiointerfacehandler (class in app)": [[0, "app.CheckAudioInterfaceHandler"]], "generalexceptionhandler (class in app)": [[0, "app.GeneralExceptionHandler"]], "helphandler (class in app)": [[0, "app.HelpHandler"]], "launchrequesthandler (class in app)": [[0, "app.LaunchRequestHandler"]], "loggingrequestinterceptor (class in app)": [[0, "app.LoggingRequestInterceptor"]], "loggingresponseinterceptor (class in app)": [[0, "app.LoggingResponseInterceptor"]], "mediaqueue (class in asknavidrome.media_queue)": [[0, "asknavidrome.media_queue.MediaQueue"]], "navisonicplayalbumbyartist (class in app)": [[0, "app.NaviSonicPlayAlbumByArtist"]], "navisonicplayfavouritesongs (class in app)": [[0, "app.NaviSonicPlayFavouriteSongs"]], "navisonicplaymusicbyartist (class in app)": [[0, "app.NaviSonicPlayMusicByArtist"]], "navisonicplaymusicbygenre (class in app)": [[0, "app.NaviSonicPlayMusicByGenre"]], "navisonicplaymusicrandom (class in app)": [[0, "app.NaviSonicPlayMusicRandom"]], "navisonicplayplaylist (class in app)": [[0, "app.NaviSonicPlayPlaylist"]], "navisonicplaysongbyartist (class in app)": [[0, "app.NaviSonicPlaySongByArtist"]], "navisonicrandomisequeue (class in app)": [[0, "app.NaviSonicRandomiseQueue"]], "navisonicsongdetails (class in app)": [[0, "app.NaviSonicSongDetails"]], "navisonicstarsong (class in app)": [[0, "app.NaviSonicStarSong"]], "navisonicunstarsong (class in app)": [[0, "app.NaviSonicUnstarSong"]], "nextplaybackhandler (class in app)": [[0, "app.NextPlaybackHandler"]], "pauseplaybackhandler (class in app)": [[0, "app.PausePlaybackHandler"]], "playbackfailedeventhandler (class in app)": [[0, "app.PlaybackFailedEventHandler"]], "playbackfinishedhandler (class in app)": [[0, "app.PlaybackFinishedHandler"]], "playbacknearlyfinishedhandler (class in app)": [[0, "app.PlaybackNearlyFinishedHandler"]], "playbackstartedhandler (class in app)": [[0, "app.PlaybackStartedHandler"]], "playbackstoppedhandler (class in app)": [[0, "app.PlaybackStoppedHandler"]], "previousplaybackhandler (class in app)": [[0, "app.PreviousPlaybackHandler"]], "resumeplaybackhandler (class in app)": [[0, "app.ResumePlaybackHandler"]], "skilleventhandler (class in app)": [[0, "app.SkillEventHandler"]], "subsonicconnection (class in asknavidrome.subsonic_api)": [[0, "asknavidrome.subsonic_api.SubsonicConnection"]], "systemexceptionhandler (class in app)": [[0, "app.SystemExceptionHandler"]], "track (class in asknavidrome.track)": [[0, "asknavidrome.track.Track"]], "add_screen_background() (in module asknavidrome.controller)": [[0, "asknavidrome.controller.add_screen_background"]], "add_track() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.add_track"]], "albums_by_artist() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.albums_by_artist"]], "app": [[0, "module-app"]], "asknavidrome.controller": [[0, "module-asknavidrome.controller"]], "buffer (asknavidrome.media_queue.mediaqueue attribute)": [[0, "asknavidrome.media_queue.MediaQueue.buffer"]], "build_random_song_list() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.build_random_song_list"]], "build_song_list_from_albums() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_albums"]], "build_song_list_from_favourites() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_favourites"]], "build_song_list_from_genre() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_genre"]], "build_song_list_from_playlist() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_playlist"]], "can_handle() (app.checkaudiointerfacehandler method)": [[0, "app.CheckAudioInterfaceHandler.can_handle"]], "can_handle() (app.generalexceptionhandler method)": [[0, "app.GeneralExceptionHandler.can_handle"]], "can_handle() (app.helphandler method)": [[0, "app.HelpHandler.can_handle"]], "can_handle() (app.launchrequesthandler method)": [[0, "app.LaunchRequestHandler.can_handle"]], "can_handle() (app.navisonicplayalbumbyartist method)": [[0, "app.NaviSonicPlayAlbumByArtist.can_handle"]], "can_handle() (app.navisonicplayfavouritesongs method)": [[0, "app.NaviSonicPlayFavouriteSongs.can_handle"]], "can_handle() (app.navisonicplaymusicbyartist method)": [[0, "app.NaviSonicPlayMusicByArtist.can_handle"]], "can_handle() (app.navisonicplaymusicbygenre method)": [[0, "app.NaviSonicPlayMusicByGenre.can_handle"]], "can_handle() (app.navisonicplaymusicrandom method)": [[0, "app.NaviSonicPlayMusicRandom.can_handle"]], "can_handle() (app.navisonicplayplaylist method)": [[0, "app.NaviSonicPlayPlaylist.can_handle"]], "can_handle() (app.navisonicplaysongbyartist method)": [[0, "app.NaviSonicPlaySongByArtist.can_handle"]], "can_handle() (app.navisonicrandomisequeue method)": [[0, "app.NaviSonicRandomiseQueue.can_handle"]], "can_handle() (app.navisonicsongdetails method)": [[0, "app.NaviSonicSongDetails.can_handle"]], "can_handle() (app.navisonicstarsong method)": [[0, "app.NaviSonicStarSong.can_handle"]], "can_handle() (app.navisonicunstarsong method)": [[0, "app.NaviSonicUnstarSong.can_handle"]], "can_handle() (app.nextplaybackhandler method)": [[0, "app.NextPlaybackHandler.can_handle"]], "can_handle() (app.pauseplaybackhandler method)": [[0, "app.PausePlaybackHandler.can_handle"]], "can_handle() (app.playbackfailedeventhandler method)": [[0, "app.PlaybackFailedEventHandler.can_handle"]], "can_handle() (app.playbackfinishedhandler method)": [[0, "app.PlaybackFinishedHandler.can_handle"]], "can_handle() (app.playbacknearlyfinishedhandler method)": [[0, "app.PlaybackNearlyFinishedHandler.can_handle"]], "can_handle() (app.playbackstartedhandler method)": [[0, "app.PlaybackStartedHandler.can_handle"]], "can_handle() (app.playbackstoppedhandler method)": [[0, "app.PlaybackStoppedHandler.can_handle"]], "can_handle() (app.previousplaybackhandler method)": [[0, "app.PreviousPlaybackHandler.can_handle"]], "can_handle() (app.resumeplaybackhandler method)": [[0, "app.ResumePlaybackHandler.can_handle"]], "can_handle() (app.skilleventhandler method)": [[0, "app.SkillEventHandler.can_handle"]], "can_handle() (app.systemexceptionhandler method)": [[0, "app.SystemExceptionHandler.can_handle"]], "clear() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.clear"]], "current_track (asknavidrome.media_queue.mediaqueue attribute)": [[0, "asknavidrome.media_queue.MediaQueue.current_track"]], "enqueue_next_track() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.enqueue_next_track"]], "enqueue_songs() (in module asknavidrome.controller)": [[0, "asknavidrome.controller.enqueue_songs"]], "get_history_count() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.get_history_count"]], "get_next_track() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.get_next_track"]], "get_prevous_track() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.get_prevous_track"]], "get_queue_count() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.get_queue_count"]], "get_song_details() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.get_song_details"]], "get_song_uri() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.get_song_uri"]], "handle() (app.checkaudiointerfacehandler method)": [[0, "app.CheckAudioInterfaceHandler.handle"]], "handle() (app.generalexceptionhandler method)": [[0, "app.GeneralExceptionHandler.handle"]], "handle() (app.helphandler method)": [[0, "app.HelpHandler.handle"]], "handle() (app.launchrequesthandler method)": [[0, "app.LaunchRequestHandler.handle"]], "handle() (app.navisonicplayalbumbyartist method)": [[0, "app.NaviSonicPlayAlbumByArtist.handle"]], "handle() (app.navisonicplayfavouritesongs method)": [[0, "app.NaviSonicPlayFavouriteSongs.handle"]], "handle() (app.navisonicplaymusicbyartist method)": [[0, "app.NaviSonicPlayMusicByArtist.handle"]], "handle() (app.navisonicplaymusicbygenre method)": [[0, "app.NaviSonicPlayMusicByGenre.handle"]], "handle() (app.navisonicplaymusicrandom method)": [[0, "app.NaviSonicPlayMusicRandom.handle"]], "handle() (app.navisonicplayplaylist method)": [[0, "app.NaviSonicPlayPlaylist.handle"]], "handle() (app.navisonicplaysongbyartist method)": [[0, "app.NaviSonicPlaySongByArtist.handle"]], "handle() (app.navisonicrandomisequeue method)": [[0, "app.NaviSonicRandomiseQueue.handle"]], "handle() (app.navisonicsongdetails method)": [[0, "app.NaviSonicSongDetails.handle"]], "handle() (app.navisonicstarsong method)": [[0, "app.NaviSonicStarSong.handle"]], "handle() (app.navisonicunstarsong method)": [[0, "app.NaviSonicUnstarSong.handle"]], "handle() (app.nextplaybackhandler method)": [[0, "app.NextPlaybackHandler.handle"]], "handle() (app.pauseplaybackhandler method)": [[0, "app.PausePlaybackHandler.handle"]], "handle() (app.playbackfailedeventhandler method)": [[0, "app.PlaybackFailedEventHandler.handle"]], "handle() (app.playbackfinishedhandler method)": [[0, "app.PlaybackFinishedHandler.handle"]], "handle() (app.playbacknearlyfinishedhandler method)": [[0, "app.PlaybackNearlyFinishedHandler.handle"]], "handle() (app.playbackstartedhandler method)": [[0, "app.PlaybackStartedHandler.handle"]], "handle() (app.playbackstoppedhandler method)": [[0, "app.PlaybackStoppedHandler.handle"]], "handle() (app.previousplaybackhandler method)": [[0, "app.PreviousPlaybackHandler.handle"]], "handle() (app.resumeplaybackhandler method)": [[0, "app.ResumePlaybackHandler.handle"]], "handle() (app.skilleventhandler method)": [[0, "app.SkillEventHandler.handle"]], "handle() (app.systemexceptionhandler method)": [[0, "app.SystemExceptionHandler.handle"]], "history (asknavidrome.media_queue.mediaqueue attribute)": [[0, "asknavidrome.media_queue.MediaQueue.history"]], "logger (asknavidrome.media_queue.mediaqueue attribute)": [[0, "asknavidrome.media_queue.MediaQueue.logger"]], "module": [[0, "module-app"], [0, "module-asknavidrome.controller"]], "ping() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.ping"]], "process() (app.loggingrequestinterceptor method)": [[0, "app.LoggingRequestInterceptor.process"]], "process() (app.loggingresponseinterceptor method)": [[0, "app.LoggingResponseInterceptor.process"]], "queue (asknavidrome.media_queue.mediaqueue attribute)": [[0, "asknavidrome.media_queue.MediaQueue.queue"]], "search_album() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.search_album"]], "search_artist() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.search_artist"]], "search_playlist() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.search_playlist"]], "search_song() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.search_song"]], "shuffle() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.shuffle"]], "star_entry() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.star_entry"]], "start_playback() (in module asknavidrome.controller)": [[0, "asknavidrome.controller.start_playback"]], "stop() (in module asknavidrome.controller)": [[0, "asknavidrome.controller.stop"]], "sync() (asknavidrome.media_queue.mediaqueue method)": [[0, "asknavidrome.media_queue.MediaQueue.sync"]], "unstar_entry() (asknavidrome.subsonic_api.subsonicconnection method)": [[0, "asknavidrome.subsonic_api.SubsonicConnection.unstar_entry"]]}}) \ No newline at end of file