Documentation update

This commit is contained in:
Ross Stewart
2023-02-05 13:00:25 +00:00
parent 25afb05956
commit 70120d23cf
13 changed files with 48 additions and 13122 deletions

View File

@@ -1,134 +0,0 @@
/*
* _sphinx_javascript_frameworks_compat.js
* ~~~~~~~~~~
*
* Compatability shim for jQuery and underscores.js.
*
* WILL BE REMOVED IN Sphinx 6.0
* xref RemovedInSphinx60Warning
*
*/
/**
* select a different prefix for underscore
*/
$u = _.noConflict();
/**
* small helper function to urldecode strings
*
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
*/
jQuery.urldecode = function(x) {
if (!x) {
return x
}
return decodeURIComponent(x.replace(/\+/g, ' '));
};
/**
* small helper function to urlencode strings
*/
jQuery.urlencode = encodeURIComponent;
/**
* This function returns the parsed url parameters of the
* current request. Multiple values per key are supported,
* it will always return arrays of strings for the value parts.
*/
jQuery.getQueryParameters = function(s) {
if (typeof s === 'undefined')
s = document.location.search;
var parts = s.substr(s.indexOf('?') + 1).split('&');
var result = {};
for (var i = 0; i < parts.length; i++) {
var tmp = parts[i].split('=', 2);
var key = jQuery.urldecode(tmp[0]);
var value = jQuery.urldecode(tmp[1]);
if (key in result)
result[key].push(value);
else
result[key] = [value];
}
return result;
};
/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name.
*/
jQuery.fn.highlightText = function(text, className) {
function highlight(node, addItems) {
if (node.nodeType === 3) {
var val = node.nodeValue;
var pos = val.toLowerCase().indexOf(text);
if (pos >= 0 &&
!jQuery(node.parentNode).hasClass(className) &&
!jQuery(node.parentNode).hasClass("nohighlight")) {
var span;
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.className = className;
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
document.createTextNode(val.substr(pos + text.length)),
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
addItems.push({
"parent": node.parentNode,
"target": rect});
}
}
}
else if (!jQuery(node).is("button, select, textarea")) {
jQuery.each(node.childNodes, function() {
highlight(this, addItems);
});
}
}
var addItems = [];
var result = this.each(function() {
highlight(this, addItems);
});
for (var i = 0; i < addItems.length; ++i) {
jQuery(addItems[i].parent).before(addItems[i].target);
}
return result;
};
/*
* backward compatibility for jQuery.browser
* This will be supported until firefox bug is fixed.
*/
if (!jQuery.browser) {
jQuery.uaMatch = function(ua) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
jQuery.browser = {};
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
}

View File

@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@@ -324,6 +324,7 @@ aside.sidebar {
p.sidebar-title {
font-weight: bold;
}
nav.contents,
aside.topic,
div.admonition, div.topic, blockquote {
@@ -331,6 +332,7 @@ div.admonition, div.topic, blockquote {
}
/* -- topics ---------------------------------------------------------------- */
nav.contents,
aside.topic,
div.topic {
@@ -606,6 +608,7 @@ ol.simple p,
ul.simple p {
margin-bottom: 0;
}
aside.footnote > span,
div.citation > span {
float: left;

View File

@@ -4,7 +4,7 @@
*
* Base JavaScript utilities for all Sphinx HTML documentation.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -5,7 +5,7 @@
* This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/

View File

@@ -4,7 +4,7 @@
*
* Sphinx JavaScript utilities for the full-text search.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -11,9 +11,6 @@
<link rel="stylesheet" type="text/css" href="_static/css/custom.css" />
<link rel="stylesheet" href="../_static/css/functions.css" type="text/css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<link rel="index" title="Index" href="#" />
@@ -471,7 +468,7 @@
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2022, Ross Stewart.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 5.3.0.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.1.3.
</div>
</body>
</html>

View File

@@ -12,9 +12,6 @@
<link rel="stylesheet" type="text/css" href="_static/css/custom.css" />
<link rel="stylesheet" href="../_static/css/functions.css" type="text/css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<link rel="index" title="Index" href="genindex.html" />
@@ -298,28 +295,28 @@ accessible.</p>
</li>
<li><p>Create a directory for the web service</p></li>
<li><p>Change to the directory and clone the repository from GitHub</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span> directory
git clone https://github.com/rosskouk/asknavidrome.git
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>directory
git<span class="w"> </span>clone<span class="w"> </span>https://github.com/rosskouk/asknavidrome.git
</pre></div>
</div>
</li>
<li><p>Change directory to the skill folder</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span> asknavidrome/skill
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>asknavidrome/skill
</pre></div>
</div>
</li>
<li><p>Start the skill by setting the required environment variables and executing the application
you can find details of what each option does in the <em>configuration</em> section.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">NAVI_SKILL_ID</span><span class="o">=</span>&lt;your-skill-id&gt; <span class="se">\</span>
<span class="nv">NAVI_SONG_COUNT</span><span class="o">=</span><span class="m">50</span> <span class="se">\</span>
<span class="nv">NAVI_URL</span><span class="o">=</span>https://your-navidrome-server.test <span class="se">\</span>
<span class="nv">NAVI_USER</span><span class="o">=</span>&lt;username&gt; <span class="se">\</span>
<span class="nv">NAVI_PASS</span><span class="o">=</span>&lt;password&gt; <span class="se">\</span>
<span class="nv">NAVI_PORT</span><span class="o">=</span><span class="m">443</span> <span class="se">\</span>
<span class="nv">NAVI_API_PATH</span><span class="o">=</span>/rest <span class="se">\</span>
<span class="nv">NAVI_API_VER</span><span class="o">=</span><span class="m">1</span>.16.1 <span class="se">\</span>
<span class="nv">NAVI_DEBUG</span><span class="o">=</span><span class="m">0</span> <span class="se">\</span>
python3 app.py
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">NAVI_SKILL_ID</span><span class="o">=</span>&lt;your-skill-id&gt;<span class="w"> </span><span class="se">\</span>
<span class="nv">NAVI_SONG_COUNT</span><span class="o">=</span><span class="m">50</span><span class="w"> </span><span class="se">\</span>
<span class="nv">NAVI_URL</span><span class="o">=</span>https://your-navidrome-server.test<span class="w"> </span><span class="se">\</span>
<span class="nv">NAVI_USER</span><span class="o">=</span>&lt;username&gt;<span class="w"> </span><span class="se">\</span>
<span class="nv">NAVI_PASS</span><span class="o">=</span>&lt;password&gt;<span class="w"> </span><span class="se">\</span>
<span class="nv">NAVI_PORT</span><span class="o">=</span><span class="m">443</span><span class="w"> </span><span class="se">\</span>
<span class="nv">NAVI_API_PATH</span><span class="o">=</span>/rest<span class="w"> </span><span class="se">\</span>
<span class="nv">NAVI_API_VER</span><span class="o">=</span><span class="m">1</span>.16.1<span class="w"> </span><span class="se">\</span>
<span class="nv">NAVI_DEBUG</span><span class="o">=</span><span class="m">0</span><span class="w"> </span><span class="se">\</span>
python3<span class="w"> </span>app.py
</pre></div>
</div>
</li>
@@ -330,16 +327,16 @@ python3 app.py
<p>A Dockerfile has been provided and a prebuilt container is hosted on github.com. <strong>Please note that the prebuilt container was created on an amd64 platform</strong>. 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.</p>
<p>You can configure the service by passing environment variables to the <em>docker run</em> command.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker run -p <span class="m">5000</span>:5000 <span class="se">\</span>
-e <span class="nv">NAVI_SKILL_ID</span><span class="o">=</span>&lt;your-skill-id&gt; <span class="se">\</span>
-e <span class="nv">NAVI_SONG_COUNT</span><span class="o">=</span><span class="m">50</span> <span class="se">\</span>
-e <span class="nv">NAVI_URL</span><span class="o">=</span>https://your-navidrome-server.test <span class="se">\</span>
-e <span class="nv">NAVI_USER</span><span class="o">=</span>&lt;username&gt; <span class="se">\</span>
-e <span class="nv">NAVI_PASS</span><span class="o">=</span>&lt;password&gt; <span class="se">\</span>
-e <span class="nv">NAVI_PORT</span><span class="o">=</span><span class="m">443</span> <span class="se">\</span>
-e <span class="nv">NAVI_API_PATH</span><span class="o">=</span>/rest <span class="se">\</span>
-e <span class="nv">NAVI_API_VER</span><span class="o">=</span><span class="m">1</span>.16.1 <span class="se">\</span>
-e <span class="nv">NAVI_DEBUG</span><span class="o">=</span><span class="m">0</span> <span class="se">\</span>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>run<span class="w"> </span>-p<span class="w"> </span><span class="m">5000</span>:5000<span class="w"> </span><span class="se">\</span>
-e<span class="w"> </span><span class="nv">NAVI_SKILL_ID</span><span class="o">=</span>&lt;your-skill-id&gt;<span class="w"> </span><span class="se">\</span>
-e<span class="w"> </span><span class="nv">NAVI_SONG_COUNT</span><span class="o">=</span><span class="m">50</span><span class="w"> </span><span class="se">\</span>
-e<span class="w"> </span><span class="nv">NAVI_URL</span><span class="o">=</span>https://your-navidrome-server.test<span class="w"> </span><span class="se">\</span>
-e<span class="w"> </span><span class="nv">NAVI_USER</span><span class="o">=</span>&lt;username&gt;<span class="w"> </span><span class="se">\</span>
-e<span class="w"> </span><span class="nv">NAVI_PASS</span><span class="o">=</span>&lt;password&gt;<span class="w"> </span><span class="se">\</span>
-e<span class="w"> </span><span class="nv">NAVI_PORT</span><span class="o">=</span><span class="m">443</span><span class="w"> </span><span class="se">\</span>
-e<span class="w"> </span><span class="nv">NAVI_API_PATH</span><span class="o">=</span>/rest<span class="w"> </span><span class="se">\</span>
-e<span class="w"> </span><span class="nv">NAVI_API_VER</span><span class="o">=</span><span class="m">1</span>.16.1<span class="w"> </span><span class="se">\</span>
-e<span class="w"> </span><span class="nv">NAVI_DEBUG</span><span class="o">=</span><span class="m">0</span><span class="w"> </span><span class="se">\</span>
ghcr.io/rosskouk/asknavidrome:&lt;tag&gt;
</pre></div>
</div>
@@ -470,11 +467,11 @@ will be <strong>publicly</strong> available while this is enabled.</p></li>
<h3>Known Issues<a class="headerlink" href="#known-issues" title="Permalink to this heading"></a></h3>
<ol class="arabic">
<li><p>The skill appears to work but no music is played. Errors similar to below appear in the web service log</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="m">2022</span>-11-19 <span class="m">13</span>:16:45,478 - root - DEBUG - In PlaybackFailedHandler
<span class="m">2022</span>-11-19 <span class="m">13</span>:16:45,479 - root - ERROR - Playback Failed: <span class="o">{</span><span class="s1">&#39;message&#39;</span>: <span class="s1">&#39;Device playback error&#39;</span>, <span class="s1">&#39;object_type&#39;</span>: <span class="s1">&#39;MEDIA_ERROR_UNKNOWN&#39;</span><span class="o">}</span>
<span class="m">2022</span>-11-19 <span class="m">13</span>:16:45,480 - werkzeug - INFO - <span class="m">10</span>.44.17.62 - - <span class="o">[</span><span class="m">19</span>/Nov/2022 <span class="m">13</span>:16:45<span class="o">]</span> <span class="s2">&quot;POST / HTTP/1.1&quot;</span> <span class="m">200</span> -
<span class="m">2022</span>-11-19 <span class="m">13</span>:16:48,599 - root - DEBUG - In PlaybackFailedHandler
<span class="m">2022</span>-11-19 <span class="m">13</span>:16:48,600 - root - ERROR - Playback Failed: <span class="o">{</span><span class="s1">&#39;message&#39;</span>: <span class="s1">&#39;Device playback error&#39;</span>,<span class="s1">&#39;object_type&#39;</span>: <span class="s1">&#39;MEDIA_ERROR_INTERNAL_DEVICE_ERROR&#39;</span><span class="o">}</span>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="m">2022</span>-11-19<span class="w"> </span><span class="m">13</span>:16:45,478<span class="w"> </span>-<span class="w"> </span>root<span class="w"> </span>-<span class="w"> </span>DEBUG<span class="w"> </span>-<span class="w"> </span>In<span class="w"> </span>PlaybackFailedHandler
<span class="m">2022</span>-11-19<span class="w"> </span><span class="m">13</span>:16:45,479<span class="w"> </span>-<span class="w"> </span>root<span class="w"> </span>-<span class="w"> </span>ERROR<span class="w"> </span>-<span class="w"> </span>Playback<span class="w"> </span>Failed:<span class="w"> </span><span class="o">{</span><span class="s1">&#39;message&#39;</span>:<span class="w"> </span><span class="s1">&#39;Device playback error&#39;</span>,<span class="w"> </span><span class="s1">&#39;object_type&#39;</span>:<span class="w"> </span><span class="s1">&#39;MEDIA_ERROR_UNKNOWN&#39;</span><span class="o">}</span>
<span class="m">2022</span>-11-19<span class="w"> </span><span class="m">13</span>:16:45,480<span class="w"> </span>-<span class="w"> </span>werkzeug<span class="w"> </span>-<span class="w"> </span>INFO<span class="w"> </span>-<span class="w"> </span><span class="m">10</span>.44.17.62<span class="w"> </span>-<span class="w"> </span>-<span class="w"> </span><span class="o">[</span><span class="m">19</span>/Nov/2022<span class="w"> </span><span class="m">13</span>:16:45<span class="o">]</span><span class="w"> </span><span class="s2">&quot;POST / HTTP/1.1&quot;</span><span class="w"> </span><span class="m">200</span><span class="w"> </span>-
<span class="m">2022</span>-11-19<span class="w"> </span><span class="m">13</span>:16:48,599<span class="w"> </span>-<span class="w"> </span>root<span class="w"> </span>-<span class="w"> </span>DEBUG<span class="w"> </span>-<span class="w"> </span>In<span class="w"> </span>PlaybackFailedHandler
<span class="m">2022</span>-11-19<span class="w"> </span><span class="m">13</span>:16:48,600<span class="w"> </span>-<span class="w"> </span>root<span class="w"> </span>-<span class="w"> </span>ERROR<span class="w"> </span>-<span class="w"> </span>Playback<span class="w"> </span>Failed:<span class="w"> </span><span class="o">{</span><span class="s1">&#39;message&#39;</span>:<span class="w"> </span><span class="s1">&#39;Device playback error&#39;</span>,<span class="s1">&#39;object_type&#39;</span>:<span class="w"> </span><span class="s1">&#39;MEDIA_ERROR_INTERNAL_DEVICE_ERROR&#39;</span><span class="o">}</span>
</pre></div>
</div>
<ul class="simple">
@@ -483,7 +480,7 @@ Disconnect the power for a minute and plug it back in then try again and music s
</ul>
</li>
<li><p>The following error is displayed when you try to run the Docker container</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">exec</span> /opt/env/bin/python3: <span class="nb">exec</span> format error
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">exec</span><span class="w"> </span>/opt/env/bin/python3:<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>format<span class="w"> </span>error
</pre></div>
</div>
<ul class="simple">
@@ -2164,7 +2161,7 @@ during dispatch.</p>
</table>
<dl class="py function">
<dt class="sig sig-object py" id="asknavidrome.controller.add_screen_background">
<span class="sig-prename descclassname"><span class="pre">asknavidrome.controller.</span></span><span class="sig-name descname"><span class="pre">add_screen_background</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">card_data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">AudioItemMetadata</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#asknavidrome.controller.add_screen_background" title="Permalink to this definition"></a></dt>
<span class="sig-prename descclassname"><span class="pre">asknavidrome.controller.</span></span><span class="sig-name descname"><span class="pre">add_screen_background</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">card_data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">AudioItemMetadata</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#asknavidrome.controller.add_screen_background" title="Permalink to this definition"></a></dt>
<dd><p>Add background to card.</p>
<p>Cards are viewable on devices with screens and in the Alexa
app.</p>
@@ -2584,7 +2581,7 @@ queue.</p>
<dl class="py method">
<dt class="sig sig-object py" id="asknavidrome.subsonic_api.SubsonicConnection.build_random_song_list">
<span class="sig-name descname"><span class="pre">build_random_song_list</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">count</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">list</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.build_random_song_list" title="Permalink to this definition"></a></dt>
<span class="sig-name descname"><span class="pre">build_random_song_list</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">count</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.build_random_song_list" title="Permalink to this definition"></a></dt>
<dd><p>Build a shuffled list of random songs</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -2623,7 +2620,7 @@ until song_count is greater than of equal to length</p>
<dl class="py method">
<dt class="sig sig-object py" id="asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_favourites">
<span class="sig-name descname"><span class="pre">build_song_list_from_favourites</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">list</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_favourites" title="Permalink to this definition"></a></dt>
<span class="sig-name descname"><span class="pre">build_song_list_from_favourites</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_favourites" title="Permalink to this definition"></a></dt>
<dd><p>Build a shuffled list favourite songs</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
@@ -2637,7 +2634,7 @@ until song_count is greater than of equal to length</p>
<dl class="py method">
<dt class="sig sig-object py" id="asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_genre">
<span class="sig-name descname"><span class="pre">build_song_list_from_genre</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">genre</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">count</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">list</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_genre" title="Permalink to this definition"></a></dt>
<span class="sig-name descname"><span class="pre">build_song_list_from_genre</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">genre</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">count</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.build_song_list_from_genre" title="Permalink to this definition"></a></dt>
<dd><p>Build a shuffled list songs of songs from the given genre.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -2726,7 +2723,7 @@ is working</p>
<dl class="py method">
<dt class="sig sig-object py" id="asknavidrome.subsonic_api.SubsonicConnection.search_album">
<span class="sig-name descname"><span class="pre">search_album</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">term</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">dict</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.search_album" title="Permalink to this definition"></a></dt>
<span class="sig-name descname"><span class="pre">search_album</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">term</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.search_album" title="Permalink to this definition"></a></dt>
<dd><p>Search the media server for the given album</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -2743,7 +2740,7 @@ is working</p>
<dl class="py method">
<dt class="sig sig-object py" id="asknavidrome.subsonic_api.SubsonicConnection.search_artist">
<span class="sig-name descname"><span class="pre">search_artist</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">term</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">dict</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.search_artist" title="Permalink to this definition"></a></dt>
<span class="sig-name descname"><span class="pre">search_artist</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">term</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.search_artist" title="Permalink to this definition"></a></dt>
<dd><p>Search the media server for the given artist</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -2760,7 +2757,7 @@ is working</p>
<dl class="py method">
<dt class="sig sig-object py" id="asknavidrome.subsonic_api.SubsonicConnection.search_playlist">
<span class="sig-name descname"><span class="pre">search_playlist</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">term</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.search_playlist" title="Permalink to this definition"></a></dt>
<span class="sig-name descname"><span class="pre">search_playlist</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">term</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.search_playlist" title="Permalink to this definition"></a></dt>
<dd><p>Search the media server for the given playlist</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -2777,7 +2774,7 @@ is working</p>
<dl class="py method">
<dt class="sig sig-object py" id="asknavidrome.subsonic_api.SubsonicConnection.search_song">
<span class="sig-name descname"><span class="pre">search_song</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">term</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">dict</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.search_song" title="Permalink to this definition"></a></dt>
<span class="sig-name descname"><span class="pre">search_song</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">term</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#asknavidrome.subsonic_api.SubsonicConnection.search_song" title="Permalink to this definition"></a></dt>
<dd><p>Search the media server for the given song</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -3130,7 +3127,7 @@ is working</p>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2022, Ross Stewart.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 5.3.0.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.1.3.
</div>
</body>
</html>

View File

@@ -11,9 +11,6 @@
<link rel="stylesheet" type="text/css" href="_static/css/custom.css" />
<link rel="stylesheet" href="../_static/css/functions.css" type="text/css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<link rel="index" title="Index" href="genindex.html" />
@@ -106,7 +103,7 @@
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2022, Ross Stewart.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 5.3.0.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.1.3.
</div>
</body>
</html>

View File

@@ -12,9 +12,6 @@
<link rel="stylesheet" href="../_static/css/functions.css" type="text/css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<script src="_static/searchtools.js"></script>
@@ -100,7 +97,7 @@
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2022, Ross Stewart.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 5.3.0.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.1.3.
</div>
</body>
</html>