spotifywebapiPython 1.0.287__py3-none-any.whl → 1.0.289__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- spotifywebapipython/const.py +1 -1
- spotifywebapipython/docs/__init__.html +15 -2
- spotifywebapipython/docs/index.html +2 -2
- spotifywebapipython/docs/search.js +1 -1
- spotifywebapipython/docs/spotifywebapipython/const.html +3 -3
- spotifywebapipython/docs/spotifywebapipython/saappmessages.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/sautils.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifyclient.html +61 -6
- spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifymediatypes.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifytypeprefixes.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html +24 -2
- spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html +2 -2
- spotifywebapipython/spotifyclient.py +108 -12
- spotifywebapipython/spotifywebapierror.py +24 -0
- {spotifywebapipython-1.0.287.dist-info → spotifywebapipython-1.0.289.dist-info}/METADATA +1 -1
- {spotifywebapipython-1.0.287.dist-info → spotifywebapipython-1.0.289.dist-info}/RECORD +24 -24
- {spotifywebapipython-1.0.287.dist-info → spotifywebapipython-1.0.289.dist-info}/LICENSE +0 -0
- {spotifywebapipython-1.0.287.dist-info → spotifywebapipython-1.0.289.dist-info}/WHEEL +0 -0
- {spotifywebapipython-1.0.287.dist-info → spotifywebapipython-1.0.289.dist-info}/top_level.txt +0 -0
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</title>
|
|
10
10
|
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20role%3D%22img%22%20aria-label%3D%22pdoc%20logo%22%20width%3D%22300%22%20height%3D%22150%22%20viewBox%3D%22-1%200%2060%2030%22%3E%3Ctitle%3Epdoc%3C/title%3E%3Cpath%20d%3D%22M29.621%2021.293c-.011-.273-.214-.475-.511-.481a.5.5%200%200%200-.489.503l-.044%201.393c-.097.551-.695%201.215-1.566%201.704-.577.428-1.306.486-2.193.182-1.426-.617-2.467-1.654-3.304-2.487l-.173-.172a3.43%203.43%200%200%200-.365-.306.49.49%200%200%200-.286-.196c-1.718-1.06-4.931-1.47-7.353.191l-.219.15c-1.707%201.187-3.413%202.131-4.328%201.03-.02-.027-.49-.685-.141-1.763.233-.721.546-2.408.772-4.076.042-.09.067-.187.046-.288.166-1.347.277-2.625.241-3.351%201.378-1.008%202.271-2.586%202.271-4.362%200-.976-.272-1.935-.788-2.774-.057-.094-.122-.18-.184-.268.033-.167.052-.339.052-.516%200-1.477-1.202-2.679-2.679-2.679-.791%200-1.496.352-1.987.9a6.3%206.3%200%200%200-1.001.029c-.492-.564-1.207-.929-2.012-.929-1.477%200-2.679%201.202-2.679%202.679A2.65%202.65%200%200%200%20.97%206.554c-.383.747-.595%201.572-.595%202.41%200%202.311%201.507%204.29%203.635%205.107-.037.699-.147%202.27-.423%203.294l-.137.461c-.622%202.042-2.515%208.257%201.727%2010.643%201.614.908%203.06%201.248%204.317%201.248%202.665%200%204.492-1.524%205.322-2.401%201.476-1.559%202.886-1.854%206.491.82%201.877%201.393%203.514%201.753%204.861%201.068%202.223-1.713%202.811-3.867%203.399-6.374.077-.846.056-1.469.054-1.537zm-4.835%204.313c-.054.305-.156.586-.242.629-.034-.007-.131-.022-.307-.157-.145-.111-.314-.478-.456-.908.221.121.432.25.675.355.115.039.219.051.33.081zm-2.251-1.238c-.05.33-.158.648-.252.694-.022.001-.125-.018-.307-.157-.217-.166-.488-.906-.639-1.573.358.344.754.693%201.198%201.036zm-3.887-2.337c-.006-.116-.018-.231-.041-.342.635.145%201.189.368%201.599.625.097.231.166.481.174.642-.03.049-.055.101-.067.158-.046.013-.128.026-.298.004-.278-.037-.901-.57-1.367-1.087zm-1.127-.497c.116.306.176.625.12.71-.019.014-.117.045-.345.016-.206-.027-.604-.332-.986-.695.41-.051.816-.056%201.211-.031zm-4.535%201.535c.209.22.379.47.358.598-.006.041-.088.138-.351.234-.144.055-.539-.063-.979-.259a11.66%2011.66%200%200%200%20.972-.573zm.983-.664c.359-.237.738-.418%201.126-.554.25.237.479.548.457.694-.006.042-.087.138-.351.235-.174.064-.694-.105-1.232-.375zm-3.381%201.794c-.022.145-.061.29-.149.401-.133.166-.358.248-.69.251h-.002c-.133%200-.306-.26-.45-.621.417.091.854.07%201.291-.031zm-2.066-8.077a4.78%204.78%200%200%201-.775-.584c.172-.115.505-.254.88-.378l-.105.962zm-.331%202.302a10.32%2010.32%200%200%201-.828-.502c.202-.143.576-.328.984-.49l-.156.992zm-.45%202.157l-.701-.403c.214-.115.536-.249.891-.376a11.57%2011.57%200%200%201-.19.779zm-.181%201.716c.064.398.194.702.298.893-.194-.051-.435-.162-.736-.398.061-.119.224-.3.438-.495zM8.87%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zm-.735-.389a1.15%201.15%200%200%200-.314.783%201.16%201.16%200%200%200%201.162%201.162c.457%200%20.842-.27%201.032-.653.026.117.042.238.042.362a1.68%201.68%200%200%201-1.679%201.679%201.68%201.68%200%200%201-1.679-1.679c0-.843.626-1.535%201.436-1.654zM5.059%205.406A1.68%201.68%200%200%201%203.38%207.085a1.68%201.68%200%200%201-1.679-1.679c0-.037.009-.072.011-.109.21.3.541.508.935.508a1.16%201.16%200%200%200%201.162-1.162%201.14%201.14%200%200%200-.474-.912c.015%200%20.03-.005.045-.005.926.001%201.679.754%201.679%201.68zM3.198%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zM1.375%208.964c0-.52.103-1.035.288-1.52.466.394%201.06.64%201.717.64%201.144%200%202.116-.725%202.499-1.738.383%201.012%201.355%201.738%202.499%201.738.867%200%201.631-.421%202.121-1.062.307.605.478%201.267.478%201.942%200%202.486-2.153%204.51-4.801%204.51s-4.801-2.023-4.801-4.51zm24.342%2019.349c-.985.498-2.267.168-3.813-.979-3.073-2.281-5.453-3.199-7.813-.705-1.315%201.391-4.163%203.365-8.423.97-3.174-1.786-2.239-6.266-1.261-9.479l.146-.492c.276-1.02.395-2.457.444-3.268a6.11%206.11%200%200%200%201.18.115%206.01%206.01%200%200%200%202.536-.562l-.006.175c-.802.215-1.848.612-2.021%201.25-.079.295.021.601.274.837.219.203.415.364.598.501-.667.304-1.243.698-1.311%201.179-.02.144-.022.507.393.787.213.144.395.26.564.365-1.285.521-1.361.96-1.381%201.126-.018.142-.011.496.427.746l.854.489c-.473.389-.971.914-.999%201.429-.018.278.095.532.316.713.675.556%201.231.721%201.653.721.059%200%20.104-.014.158-.02.207.707.641%201.64%201.513%201.64h.013c.8-.008%201.236-.345%201.462-.626.173-.216.268-.457.325-.692.424.195.93.374%201.372.374.151%200%20.294-.021.423-.068.732-.27.944-.704.993-1.021.009-.061.003-.119.002-.179.266.086.538.147.789.147.15%200%20.294-.021.423-.069.542-.2.797-.489.914-.754.237.147.478.258.704.288.106.014.205.021.296.021.356%200%20.595-.101.767-.229.438.435%201.094.992%201.656%201.067.106.014.205.021.296.021a1.56%201.56%200%200%200%20.323-.035c.17.575.453%201.289.866%201.605.358.273.665.362.914.362a.99.99%200%200%200%20.421-.093%201.03%201.03%200%200%200%20.245-.164c.168.428.39.846.68%201.068.358.273.665.362.913.362a.99.99%200%200%200%20.421-.093c.317-.148.512-.448.639-.762.251.157.495.257.726.257.127%200%20.25-.024.37-.071.427-.17.706-.617.841-1.314.022-.015.047-.022.068-.038.067-.051.133-.104.196-.159-.443%201.486-1.107%202.761-2.086%203.257zM8.66%209.925a.5.5%200%201%200-1%200c0%20.653-.818%201.205-1.787%201.205s-1.787-.552-1.787-1.205a.5.5%200%201%200-1%200c0%201.216%201.25%202.205%202.787%202.205s2.787-.989%202.787-2.205zm4.4%2015.965l-.208.097c-2.661%201.258-4.708%201.436-6.086.527-1.542-1.017-1.88-3.19-1.844-4.198a.4.4%200%200%200-.385-.414c-.242-.029-.406.164-.414.385-.046%201.249.367%203.686%202.202%204.896.708.467%201.547.7%202.51.7%201.248%200%202.706-.392%204.362-1.174l.185-.086a.4.4%200%200%200%20.205-.527c-.089-.204-.326-.291-.527-.206zM9.547%202.292c.093.077.205.114.317.114a.5.5%200%200%200%20.318-.886L8.817.397a.5.5%200%200%200-.703.068.5.5%200%200%200%20.069.703l1.364%201.124zm-7.661-.065c.086%200%20.173-.022.253-.068l1.523-.893a.5.5%200%200%200-.506-.863l-1.523.892a.5.5%200%200%200-.179.685c.094.158.261.247.432.247z%22%20transform%3D%22matrix%28-1%200%200%201%2058%200%29%22%20fill%3D%22%233bb300%22/%3E%3Cpath%20d%3D%22M.3%2021.86V10.18q0-.46.02-.68.04-.22.18-.5.28-.54%201.34-.54%201.06%200%201.42.28.38.26.44.78.76-1.04%202.38-1.04%201.64%200%203.1%201.54%201.46%201.54%201.46%203.58%200%202.04-1.46%203.58-1.44%201.54-3.08%201.54-1.64%200-2.38-.92v4.04q0%20.46-.04.68-.02.22-.18.5-.14.3-.5.42-.36.12-.98.12-.62%200-1-.12-.36-.12-.52-.4-.14-.28-.18-.5-.02-.22-.02-.68zm3.96-9.42q-.46.54-.46%201.18%200%20.64.46%201.18.48.52%201.2.52.74%200%201.24-.52.52-.52.52-1.18%200-.66-.48-1.18-.48-.54-1.26-.54-.76%200-1.22.54zm14.741-8.36q.16-.3.54-.42.38-.12%201-.12.64%200%201.02.12.38.12.52.42.16.3.18.54.04.22.04.68v11.94q0%20.46-.04.7-.02.22-.18.5-.3.54-1.7.54-1.38%200-1.54-.98-.84.96-2.34.96-1.8%200-3.28-1.56-1.48-1.58-1.48-3.66%200-2.1%201.48-3.68%201.5-1.58%203.28-1.58%201.48%200%202.3%201v-4.2q0-.46.02-.68.04-.24.18-.52zm-3.24%2010.86q.52.54%201.26.54.74%200%201.22-.54.5-.54.5-1.18%200-.66-.48-1.22-.46-.56-1.26-.56-.8%200-1.28.56-.48.54-.48%201.2%200%20.66.52%201.2zm7.833-1.2q0-2.4%201.68-3.96%201.68-1.56%203.84-1.56%202.16%200%203.82%201.56%201.66%201.54%201.66%203.94%200%201.66-.86%202.96-.86%201.28-2.1%201.9-1.22.6-2.54.6-1.32%200-2.56-.64-1.24-.66-2.1-1.92-.84-1.28-.84-2.88zm4.18%201.44q.64.48%201.3.48.66%200%201.32-.5.66-.5.66-1.48%200-.98-.62-1.46-.62-.48-1.34-.48-.72%200-1.34.5-.62.5-.62%201.48%200%20.96.64%201.46zm11.412-1.44q0%20.84.56%201.32.56.46%201.18.46.64%200%201.18-.36.56-.38.9-.38.6%200%201.46%201.06.46.58.46%201.04%200%20.76-1.1%201.42-1.14.8-2.8.8-1.86%200-3.58-1.34-.82-.64-1.34-1.7-.52-1.08-.52-2.36%200-1.3.52-2.34.52-1.06%201.34-1.7%201.66-1.32%203.54-1.32.76%200%201.48.22.72.2%201.06.4l.32.2q.36.24.56.38.52.4.52.92%200%20.5-.42%201.14-.72%201.1-1.38%201.1-.38%200-1.08-.44-.36-.34-1.04-.34-.66%200-1.24.48-.58.48-.58%201.34z%22%20fill%3D%22green%22/%3E%3C/svg%3E"/>
|
|
11
11
|
<!-- build env - Package Name = "spotifywebapipython" -->
|
|
12
|
-
<!-- build env - Package Version = "1.0.
|
|
12
|
+
<!-- build env - Package Version = "1.0.289" -->
|
|
13
13
|
<!-- pdoc module.modulename = "spotifywebapipython.spotifywebapierror" -->
|
|
14
14
|
<!-- pdoc module.is_package = "False" -->
|
|
15
15
|
<!-- pdoc root_module_name = "None" -->
|
|
@@ -60,6 +60,9 @@
|
|
|
60
60
|
<li>
|
|
61
61
|
<a class="variable" href="#SpotifyWebApiError.Status">Status</a>
|
|
62
62
|
</li>
|
|
63
|
+
<li>
|
|
64
|
+
<a class="variable" href="#SpotifyWebApiError.RetryAfter">RetryAfter</a>
|
|
65
|
+
</li>
|
|
63
66
|
<li>
|
|
64
67
|
<a class="function" href="#SpotifyWebApiError.ToString">ToString</a>
|
|
65
68
|
</li>
|
|
@@ -71,7 +74,7 @@
|
|
|
71
74
|
|
|
72
75
|
<footer class="footertext">
|
|
73
76
|
spotifywebapipython</br>
|
|
74
|
-
Version 1.0.
|
|
77
|
+
Version 1.0.289</br>
|
|
75
78
|
<a href="https://developer.spotify.com/documentation/web-api" target="_blank">
|
|
76
79
|
<img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
|
|
77
80
|
A Spotify Web Api Client
|
|
@@ -197,6 +200,25 @@ For further information, see Response Status Codes.</p>
|
|
|
197
200
|
</div>
|
|
198
201
|
|
|
199
202
|
|
|
203
|
+
</div>
|
|
204
|
+
<div id="SpotifyWebApiError.RetryAfter" class="classattr">
|
|
205
|
+
<div class="attr variable">
|
|
206
|
+
<span class="name">RetryAfter</span><span class="annotation">: int</span>
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
</div>
|
|
210
|
+
<a class="headerlink" href="#SpotifyWebApiError.RetryAfter"></a>
|
|
211
|
+
|
|
212
|
+
<div class="docstring"><p>The number of seconds to wait before retrying a method call that resulted in
|
|
213
|
+
an HTTP status of 429 (rate-limit exceeded).</p>
|
|
214
|
+
|
|
215
|
+
<p>This value is only valid if the HTTP response headers contained a <code>retry-after</code> key.
|
|
216
|
+
This usually only happens when HTTP status code = 429.</p>
|
|
217
|
+
|
|
218
|
+
<p>Example: <code>21</code></p>
|
|
219
|
+
</div>
|
|
220
|
+
|
|
221
|
+
|
|
200
222
|
</div>
|
|
201
223
|
<div id="SpotifyWebApiError.ToString" class="classattr">
|
|
202
224
|
<div class="attr function">
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</title>
|
|
10
10
|
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20role%3D%22img%22%20aria-label%3D%22pdoc%20logo%22%20width%3D%22300%22%20height%3D%22150%22%20viewBox%3D%22-1%200%2060%2030%22%3E%3Ctitle%3Epdoc%3C/title%3E%3Cpath%20d%3D%22M29.621%2021.293c-.011-.273-.214-.475-.511-.481a.5.5%200%200%200-.489.503l-.044%201.393c-.097.551-.695%201.215-1.566%201.704-.577.428-1.306.486-2.193.182-1.426-.617-2.467-1.654-3.304-2.487l-.173-.172a3.43%203.43%200%200%200-.365-.306.49.49%200%200%200-.286-.196c-1.718-1.06-4.931-1.47-7.353.191l-.219.15c-1.707%201.187-3.413%202.131-4.328%201.03-.02-.027-.49-.685-.141-1.763.233-.721.546-2.408.772-4.076.042-.09.067-.187.046-.288.166-1.347.277-2.625.241-3.351%201.378-1.008%202.271-2.586%202.271-4.362%200-.976-.272-1.935-.788-2.774-.057-.094-.122-.18-.184-.268.033-.167.052-.339.052-.516%200-1.477-1.202-2.679-2.679-2.679-.791%200-1.496.352-1.987.9a6.3%206.3%200%200%200-1.001.029c-.492-.564-1.207-.929-2.012-.929-1.477%200-2.679%201.202-2.679%202.679A2.65%202.65%200%200%200%20.97%206.554c-.383.747-.595%201.572-.595%202.41%200%202.311%201.507%204.29%203.635%205.107-.037.699-.147%202.27-.423%203.294l-.137.461c-.622%202.042-2.515%208.257%201.727%2010.643%201.614.908%203.06%201.248%204.317%201.248%202.665%200%204.492-1.524%205.322-2.401%201.476-1.559%202.886-1.854%206.491.82%201.877%201.393%203.514%201.753%204.861%201.068%202.223-1.713%202.811-3.867%203.399-6.374.077-.846.056-1.469.054-1.537zm-4.835%204.313c-.054.305-.156.586-.242.629-.034-.007-.131-.022-.307-.157-.145-.111-.314-.478-.456-.908.221.121.432.25.675.355.115.039.219.051.33.081zm-2.251-1.238c-.05.33-.158.648-.252.694-.022.001-.125-.018-.307-.157-.217-.166-.488-.906-.639-1.573.358.344.754.693%201.198%201.036zm-3.887-2.337c-.006-.116-.018-.231-.041-.342.635.145%201.189.368%201.599.625.097.231.166.481.174.642-.03.049-.055.101-.067.158-.046.013-.128.026-.298.004-.278-.037-.901-.57-1.367-1.087zm-1.127-.497c.116.306.176.625.12.71-.019.014-.117.045-.345.016-.206-.027-.604-.332-.986-.695.41-.051.816-.056%201.211-.031zm-4.535%201.535c.209.22.379.47.358.598-.006.041-.088.138-.351.234-.144.055-.539-.063-.979-.259a11.66%2011.66%200%200%200%20.972-.573zm.983-.664c.359-.237.738-.418%201.126-.554.25.237.479.548.457.694-.006.042-.087.138-.351.235-.174.064-.694-.105-1.232-.375zm-3.381%201.794c-.022.145-.061.29-.149.401-.133.166-.358.248-.69.251h-.002c-.133%200-.306-.26-.45-.621.417.091.854.07%201.291-.031zm-2.066-8.077a4.78%204.78%200%200%201-.775-.584c.172-.115.505-.254.88-.378l-.105.962zm-.331%202.302a10.32%2010.32%200%200%201-.828-.502c.202-.143.576-.328.984-.49l-.156.992zm-.45%202.157l-.701-.403c.214-.115.536-.249.891-.376a11.57%2011.57%200%200%201-.19.779zm-.181%201.716c.064.398.194.702.298.893-.194-.051-.435-.162-.736-.398.061-.119.224-.3.438-.495zM8.87%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zm-.735-.389a1.15%201.15%200%200%200-.314.783%201.16%201.16%200%200%200%201.162%201.162c.457%200%20.842-.27%201.032-.653.026.117.042.238.042.362a1.68%201.68%200%200%201-1.679%201.679%201.68%201.68%200%200%201-1.679-1.679c0-.843.626-1.535%201.436-1.654zM5.059%205.406A1.68%201.68%200%200%201%203.38%207.085a1.68%201.68%200%200%201-1.679-1.679c0-.037.009-.072.011-.109.21.3.541.508.935.508a1.16%201.16%200%200%200%201.162-1.162%201.14%201.14%200%200%200-.474-.912c.015%200%20.03-.005.045-.005.926.001%201.679.754%201.679%201.68zM3.198%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zM1.375%208.964c0-.52.103-1.035.288-1.52.466.394%201.06.64%201.717.64%201.144%200%202.116-.725%202.499-1.738.383%201.012%201.355%201.738%202.499%201.738.867%200%201.631-.421%202.121-1.062.307.605.478%201.267.478%201.942%200%202.486-2.153%204.51-4.801%204.51s-4.801-2.023-4.801-4.51zm24.342%2019.349c-.985.498-2.267.168-3.813-.979-3.073-2.281-5.453-3.199-7.813-.705-1.315%201.391-4.163%203.365-8.423.97-3.174-1.786-2.239-6.266-1.261-9.479l.146-.492c.276-1.02.395-2.457.444-3.268a6.11%206.11%200%200%200%201.18.115%206.01%206.01%200%200%200%202.536-.562l-.006.175c-.802.215-1.848.612-2.021%201.25-.079.295.021.601.274.837.219.203.415.364.598.501-.667.304-1.243.698-1.311%201.179-.02.144-.022.507.393.787.213.144.395.26.564.365-1.285.521-1.361.96-1.381%201.126-.018.142-.011.496.427.746l.854.489c-.473.389-.971.914-.999%201.429-.018.278.095.532.316.713.675.556%201.231.721%201.653.721.059%200%20.104-.014.158-.02.207.707.641%201.64%201.513%201.64h.013c.8-.008%201.236-.345%201.462-.626.173-.216.268-.457.325-.692.424.195.93.374%201.372.374.151%200%20.294-.021.423-.068.732-.27.944-.704.993-1.021.009-.061.003-.119.002-.179.266.086.538.147.789.147.15%200%20.294-.021.423-.069.542-.2.797-.489.914-.754.237.147.478.258.704.288.106.014.205.021.296.021.356%200%20.595-.101.767-.229.438.435%201.094.992%201.656%201.067.106.014.205.021.296.021a1.56%201.56%200%200%200%20.323-.035c.17.575.453%201.289.866%201.605.358.273.665.362.914.362a.99.99%200%200%200%20.421-.093%201.03%201.03%200%200%200%20.245-.164c.168.428.39.846.68%201.068.358.273.665.362.913.362a.99.99%200%200%200%20.421-.093c.317-.148.512-.448.639-.762.251.157.495.257.726.257.127%200%20.25-.024.37-.071.427-.17.706-.617.841-1.314.022-.015.047-.022.068-.038.067-.051.133-.104.196-.159-.443%201.486-1.107%202.761-2.086%203.257zM8.66%209.925a.5.5%200%201%200-1%200c0%20.653-.818%201.205-1.787%201.205s-1.787-.552-1.787-1.205a.5.5%200%201%200-1%200c0%201.216%201.25%202.205%202.787%202.205s2.787-.989%202.787-2.205zm4.4%2015.965l-.208.097c-2.661%201.258-4.708%201.436-6.086.527-1.542-1.017-1.88-3.19-1.844-4.198a.4.4%200%200%200-.385-.414c-.242-.029-.406.164-.414.385-.046%201.249.367%203.686%202.202%204.896.708.467%201.547.7%202.51.7%201.248%200%202.706-.392%204.362-1.174l.185-.086a.4.4%200%200%200%20.205-.527c-.089-.204-.326-.291-.527-.206zM9.547%202.292c.093.077.205.114.317.114a.5.5%200%200%200%20.318-.886L8.817.397a.5.5%200%200%200-.703.068.5.5%200%200%200%20.069.703l1.364%201.124zm-7.661-.065c.086%200%20.173-.022.253-.068l1.523-.893a.5.5%200%200%200-.506-.863l-1.523.892a.5.5%200%200%200-.179.685c.094.158.261.247.432.247z%22%20transform%3D%22matrix%28-1%200%200%201%2058%200%29%22%20fill%3D%22%233bb300%22/%3E%3Cpath%20d%3D%22M.3%2021.86V10.18q0-.46.02-.68.04-.22.18-.5.28-.54%201.34-.54%201.06%200%201.42.28.38.26.44.78.76-1.04%202.38-1.04%201.64%200%203.1%201.54%201.46%201.54%201.46%203.58%200%202.04-1.46%203.58-1.44%201.54-3.08%201.54-1.64%200-2.38-.92v4.04q0%20.46-.04.68-.02.22-.18.5-.14.3-.5.42-.36.12-.98.12-.62%200-1-.12-.36-.12-.52-.4-.14-.28-.18-.5-.02-.22-.02-.68zm3.96-9.42q-.46.54-.46%201.18%200%20.64.46%201.18.48.52%201.2.52.74%200%201.24-.52.52-.52.52-1.18%200-.66-.48-1.18-.48-.54-1.26-.54-.76%200-1.22.54zm14.741-8.36q.16-.3.54-.42.38-.12%201-.12.64%200%201.02.12.38.12.52.42.16.3.18.54.04.22.04.68v11.94q0%20.46-.04.7-.02.22-.18.5-.3.54-1.7.54-1.38%200-1.54-.98-.84.96-2.34.96-1.8%200-3.28-1.56-1.48-1.58-1.48-3.66%200-2.1%201.48-3.68%201.5-1.58%203.28-1.58%201.48%200%202.3%201v-4.2q0-.46.02-.68.04-.24.18-.52zm-3.24%2010.86q.52.54%201.26.54.74%200%201.22-.54.5-.54.5-1.18%200-.66-.48-1.22-.46-.56-1.26-.56-.8%200-1.28.56-.48.54-.48%201.2%200%20.66.52%201.2zm7.833-1.2q0-2.4%201.68-3.96%201.68-1.56%203.84-1.56%202.16%200%203.82%201.56%201.66%201.54%201.66%203.94%200%201.66-.86%202.96-.86%201.28-2.1%201.9-1.22.6-2.54.6-1.32%200-2.56-.64-1.24-.66-2.1-1.92-.84-1.28-.84-2.88zm4.18%201.44q.64.48%201.3.48.66%200%201.32-.5.66-.5.66-1.48%200-.98-.62-1.46-.62-.48-1.34-.48-.72%200-1.34.5-.62.5-.62%201.48%200%20.96.64%201.46zm11.412-1.44q0%20.84.56%201.32.56.46%201.18.46.64%200%201.18-.36.56-.38.9-.38.6%200%201.46%201.06.46.58.46%201.04%200%20.76-1.1%201.42-1.14.8-2.8.8-1.86%200-3.58-1.34-.82-.64-1.34-1.7-.52-1.08-.52-2.36%200-1.3.52-2.34.52-1.06%201.34-1.7%201.66-1.32%203.54-1.32.76%200%201.48.22.72.2%201.06.4l.32.2q.36.24.56.38.52.4.52.92%200%20.5-.42%201.14-.72%201.1-1.38%201.1-.38%200-1.08-.44-.36-.34-1.04-.34-.66%200-1.24.48-.58.48-.58%201.34z%22%20fill%3D%22green%22/%3E%3C/svg%3E"/>
|
|
11
11
|
<!-- build env - Package Name = "spotifywebapipython" -->
|
|
12
|
-
<!-- build env - Package Version = "1.0.
|
|
12
|
+
<!-- build env - Package Version = "1.0.289" -->
|
|
13
13
|
<!-- pdoc module.modulename = "spotifywebapipython.spotifywebplayertoken" -->
|
|
14
14
|
<!-- pdoc module.is_package = "False" -->
|
|
15
15
|
<!-- pdoc root_module_name = "None" -->
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
|
|
102
102
|
<footer class="footertext">
|
|
103
103
|
spotifywebapipython</br>
|
|
104
|
-
Version 1.0.
|
|
104
|
+
Version 1.0.289</br>
|
|
105
105
|
<a href="https://developer.spotify.com/documentation/web-api" target="_blank">
|
|
106
106
|
<img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
|
|
107
107
|
A Spotify Web Api Client
|
|
@@ -15,7 +15,7 @@ from soco.plugins.sharelink import ShareLinkPlugin
|
|
|
15
15
|
import time
|
|
16
16
|
import threading
|
|
17
17
|
from typing import Tuple, Callable, Union
|
|
18
|
-
from urllib3 import PoolManager, Timeout, HTTPResponse
|
|
18
|
+
from urllib3 import PoolManager, Timeout, HTTPResponse, Retry
|
|
19
19
|
from urllib.parse import urlencode
|
|
20
20
|
import urllib.parse
|
|
21
21
|
from lxml.etree import fromstring, Element
|
|
@@ -252,16 +252,29 @@ class SpotifyClient:
|
|
|
252
252
|
# "WARNING:urllib3.connectionpool:Connection pool is full, discarding connection: x.x.x.x. Connection pool size: 1"
|
|
253
253
|
if (manager is None) or (not isinstance(manager,PoolManager)):
|
|
254
254
|
|
|
255
|
+
# setup retry details for each request made to the Spotify Web API.
|
|
256
|
+
# this allows the urllib3 PoolManager to automatically retry requests that fail due to
|
|
257
|
+
# connection and read related scenarios (e.g. temporary connection issues, redirects, etc);
|
|
258
|
+
# it allows our library to manually handle other types of retry scenarios (e.g. temporary
|
|
259
|
+
# Spotify Web API backend server, unauthorized / forbidden requests, etc).
|
|
260
|
+
retry = Retry(
|
|
261
|
+
total=3, # total number of retries to allow (takes precedence over other counts)
|
|
262
|
+
connect=2, # number of times to retry on connection-related errors (errors raised before request is sent to server)
|
|
263
|
+
read=2, # number of times to retry on read errors (errors raised after request was sent to server)
|
|
264
|
+
status=0, # number of times to retry on bad status codes (0=never retry; let us handle them manually and ignore `status_forcelist`)
|
|
265
|
+
respect_retry_after_header=False, # whether to respect Retry-After header on status codes
|
|
266
|
+
)
|
|
267
|
+
|
|
255
268
|
# create new pool manager with specified timeouts and limits.
|
|
256
269
|
timeout = Timeout(connect=float(30), read=None)
|
|
257
|
-
self._Manager = PoolManager(headers={'User-Agent': '
|
|
270
|
+
self._Manager = PoolManager(headers={'User-Agent': 'SpotifyWebApiPython/1.0.0'},
|
|
258
271
|
timeout=timeout,
|
|
259
272
|
num_pools=10, # number of connection pools to allocate.
|
|
260
273
|
maxsize=30, # maximum number of connections to keep in the pool.
|
|
261
|
-
block=True
|
|
274
|
+
block=True, # limit number of connections to the device.
|
|
275
|
+
retries=retry, # specific way to handle retry on errors.
|
|
262
276
|
)
|
|
263
277
|
|
|
264
|
-
|
|
265
278
|
# verify token storage directory exists.
|
|
266
279
|
if tokenStorageDir is None:
|
|
267
280
|
tokenStorageDir = platformdirs.site_config_dir('SpotifyWebApiPython', ensure_exists=True, appauthor=False)
|
|
@@ -706,6 +719,7 @@ class SpotifyClient:
|
|
|
706
719
|
responseData:dict = None
|
|
707
720
|
responseUTF8:str = None
|
|
708
721
|
contentType:str = None
|
|
722
|
+
retryAfterSeconds:int|None = None
|
|
709
723
|
|
|
710
724
|
try:
|
|
711
725
|
|
|
@@ -740,9 +754,17 @@ class SpotifyClient:
|
|
|
740
754
|
# do response headers contain a content-type value?
|
|
741
755
|
# if so, we will use it to determine how to convert the response data.
|
|
742
756
|
if response.headers:
|
|
757
|
+
|
|
743
758
|
if 'content-type' in response.headers:
|
|
744
759
|
contentType = response.headers['content-type']
|
|
745
760
|
|
|
761
|
+
# Spotify normally returns a seconds value for `retry-after`, but it could change to a date.
|
|
762
|
+
if 'retry-after' in response.headers:
|
|
763
|
+
try:
|
|
764
|
+
retryAfterSeconds = int(response.headers.get('retry-after', 0))
|
|
765
|
+
except Exception as ex:
|
|
766
|
+
retryAfterSeconds = None
|
|
767
|
+
|
|
746
768
|
# do we have response data?
|
|
747
769
|
if len(response.data) == 0:
|
|
748
770
|
|
|
@@ -839,9 +861,16 @@ class SpotifyClient:
|
|
|
839
861
|
|
|
840
862
|
if errCode is None:
|
|
841
863
|
errCode = response.status
|
|
864
|
+
|
|
865
|
+
# if "retry-after" response header, then append the amount to the message.
|
|
866
|
+
if (retryAfterSeconds is not None):
|
|
867
|
+
errMessage += " (retry-after: %s seconds)" % retryAfterSeconds
|
|
842
868
|
|
|
843
869
|
if (not msg.IgnoreResponseErrors):
|
|
844
|
-
|
|
870
|
+
exObj = SpotifyWebApiError(errCode, errMessage, msg.MethodName, response.reason, _logsi)
|
|
871
|
+
if (retryAfterSeconds is not None):
|
|
872
|
+
exObj.RetryAfter = retryAfterSeconds
|
|
873
|
+
raise exObj
|
|
845
874
|
|
|
846
875
|
elif isinstance(errObj, str):
|
|
847
876
|
|
|
@@ -1565,6 +1594,18 @@ class SpotifyClient:
|
|
|
1565
1594
|
_logsi.LogDictionary(SILevel.Verbose, "SpotifyClient http request: '%s' (no body)" % (url), msg.RequestData, prettyPrint=True)
|
|
1566
1595
|
response = self._Manager.request(method, url, headers=msg.RequestHeaders)
|
|
1567
1596
|
|
|
1597
|
+
# TEST TODO - simulate http response for testing purposes.
|
|
1598
|
+
# _logsi.LogWarning("SpotifyClient MakeRequest forced HTTPResponse for testing!", colorValue=SIColors.Red)
|
|
1599
|
+
# response = HTTPResponse(
|
|
1600
|
+
# status=429,
|
|
1601
|
+
# reason="Too Many Requests (TEST)",
|
|
1602
|
+
# body=b'{"error":{"status":429,"message":"API rate limit exceeded"}}',
|
|
1603
|
+
# headers={
|
|
1604
|
+
# "Content-Type": "application/json",
|
|
1605
|
+
# "Retry-After": "41",
|
|
1606
|
+
# },
|
|
1607
|
+
# )
|
|
1608
|
+
|
|
1568
1609
|
# TEST TODO - for testing retry logic.
|
|
1569
1610
|
# if (response.status_code == 200) and (loopTotalDelay <= 0.200):
|
|
1570
1611
|
# _logsi.LogWarning("TEST TODO - Testing Spotify Web API 504 status (Gateway timeout) condition ...", colorValue=SIColors.Red)
|
|
@@ -1577,7 +1618,7 @@ class SpotifyClient:
|
|
|
1577
1618
|
|
|
1578
1619
|
# check for errors that are temporary in nature; for these errors, we will retry the
|
|
1579
1620
|
# request for a specified number of tries with a small wait period in between.
|
|
1580
|
-
if (response.status
|
|
1621
|
+
if (response.status in [503,504]):
|
|
1581
1622
|
|
|
1582
1623
|
# only retry so many times before we give up;
|
|
1583
1624
|
if (loopTotalDelay >= LOOP_TIMEOUT):
|
|
@@ -3722,6 +3763,11 @@ class SpotifyClient:
|
|
|
3722
3763
|
SpotifyApiError:
|
|
3723
3764
|
If the method fails for any other reason.
|
|
3724
3765
|
|
|
3766
|
+
Filter criteria is applied after data (up to the limit) has been retrieved.
|
|
3767
|
+
This is important, in that if you set the limit too low it will not find any matching entries because
|
|
3768
|
+
it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
|
|
3769
|
+
is considered by the filter.
|
|
3770
|
+
|
|
3725
3771
|
<details>
|
|
3726
3772
|
<summary>Sample Code - Manual Paging</summary>
|
|
3727
3773
|
```python
|
|
@@ -3925,6 +3971,11 @@ class SpotifyClient:
|
|
|
3925
3971
|
SpotifyApiError:
|
|
3926
3972
|
If the method fails for any other reason.
|
|
3927
3973
|
|
|
3974
|
+
Filter criteria is applied after data (up to the limit) has been retrieved.
|
|
3975
|
+
This is important, in that if you set the limit too low it will not find any matching entries because
|
|
3976
|
+
it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
|
|
3977
|
+
is considered by the filter.
|
|
3978
|
+
|
|
3928
3979
|
<details>
|
|
3929
3980
|
<summary>Sample Code - Manual Paging</summary>
|
|
3930
3981
|
```python
|
|
@@ -4435,7 +4486,7 @@ class SpotifyClient:
|
|
|
4435
4486
|
self,
|
|
4436
4487
|
artistId:str=None,
|
|
4437
4488
|
include_groups:str='album',
|
|
4438
|
-
limit:int=
|
|
4489
|
+
limit:int=10,
|
|
4439
4490
|
offset:int=0,
|
|
4440
4491
|
market:str=None,
|
|
4441
4492
|
limitTotal:int=None,
|
|
@@ -4457,7 +4508,7 @@ class SpotifyClient:
|
|
|
4457
4508
|
Example: `single,appears_on`
|
|
4458
4509
|
limit (int):
|
|
4459
4510
|
The maximum number of items to return in a page of items when manual paging is used.
|
|
4460
|
-
Default:
|
|
4511
|
+
Default: 10, Range: 1 to 10.
|
|
4461
4512
|
See the `limitTotal` argument for automatic paging option.
|
|
4462
4513
|
offset (int):
|
|
4463
4514
|
The index of the first item to return; use with limit to get the next set of items.
|
|
@@ -4523,7 +4574,7 @@ class SpotifyClient:
|
|
|
4523
4574
|
|
|
4524
4575
|
# validations.
|
|
4525
4576
|
if limit is None:
|
|
4526
|
-
limit =
|
|
4577
|
+
limit = 10
|
|
4527
4578
|
if offset is None:
|
|
4528
4579
|
offset = 0
|
|
4529
4580
|
if not isinstance(limitTotal, int):
|
|
@@ -4533,7 +4584,7 @@ class SpotifyClient:
|
|
|
4533
4584
|
|
|
4534
4585
|
# are we auto-paging? if so, then use max limit.
|
|
4535
4586
|
if limitTotal > 0:
|
|
4536
|
-
limit =
|
|
4587
|
+
limit = 10
|
|
4537
4588
|
if limit > limitTotal:
|
|
4538
4589
|
limit = limitTotal
|
|
4539
4590
|
result = AlbumPageSimplified()
|
|
@@ -5191,8 +5242,8 @@ class SpotifyClient:
|
|
|
5191
5242
|
were returned in by the Spotify Web API.
|
|
5192
5243
|
Default: True
|
|
5193
5244
|
filterCriteria (str):
|
|
5194
|
-
Filter returned entries by
|
|
5195
|
-
Value can be a full name (e.g. "My
|
|
5245
|
+
Filter returned entries by an artist name or uri value.
|
|
5246
|
+
Value can be a full name (e.g. "My Artist Name"), or a partial name (e.g. "My").
|
|
5196
5247
|
|
|
5197
5248
|
Returns:
|
|
5198
5249
|
An `ArtistPage` object of matching results.
|
|
@@ -5204,6 +5255,11 @@ class SpotifyClient:
|
|
|
5204
5255
|
SpotifyApiError:
|
|
5205
5256
|
If the method fails for any other reason.
|
|
5206
5257
|
|
|
5258
|
+
Filter criteria is applied after data (up to the limit) has been retrieved.
|
|
5259
|
+
This is important, in that if you set the limit too low it will not find any matching entries because
|
|
5260
|
+
it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
|
|
5261
|
+
is considered by the filter.
|
|
5262
|
+
|
|
5207
5263
|
<details>
|
|
5208
5264
|
<summary>Sample Code - Manual Paging</summary>
|
|
5209
5265
|
```python
|
|
@@ -5802,6 +5858,11 @@ class SpotifyClient:
|
|
|
5802
5858
|
SpotifyApiError:
|
|
5803
5859
|
If the method fails for any other reason.
|
|
5804
5860
|
|
|
5861
|
+
Filter criteria is applied after data (up to the limit) has been retrieved.
|
|
5862
|
+
This is important, in that if you set the limit too low it will not find any matching entries because
|
|
5863
|
+
it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
|
|
5864
|
+
is considered by the filter.
|
|
5865
|
+
|
|
5805
5866
|
<details>
|
|
5806
5867
|
<summary>Sample Code - Manual Paging</summary>
|
|
5807
5868
|
```python
|
|
@@ -7312,6 +7373,11 @@ class SpotifyClient:
|
|
|
7312
7373
|
SpotifyApiError:
|
|
7313
7374
|
If the method fails for any other reason.
|
|
7314
7375
|
|
|
7376
|
+
Filter criteria is applied after data (up to the limit) has been retrieved.
|
|
7377
|
+
This is important, in that if you set the limit too low it will not find any matching entries because
|
|
7378
|
+
it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
|
|
7379
|
+
is considered by the filter.
|
|
7380
|
+
|
|
7315
7381
|
<details>
|
|
7316
7382
|
<summary>Sample Code - Manual Paging</summary>
|
|
7317
7383
|
```python
|
|
@@ -9397,6 +9463,11 @@ class SpotifyClient:
|
|
|
9397
9463
|
If both `after` and `before` arguments are null (or zero), then a `before` value
|
|
9398
9464
|
is generated that will retrieve the last 50 recently played tracks.
|
|
9399
9465
|
|
|
9466
|
+
Filter criteria is applied after data (up to the limit) has been retrieved.
|
|
9467
|
+
This is important, in that if you set the limit too low it will not find any matching entries because
|
|
9468
|
+
it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
|
|
9469
|
+
is considered by the filter.
|
|
9470
|
+
|
|
9400
9471
|
Returns:
|
|
9401
9472
|
A `PlayHistoryPage` object that contains the recently played items.
|
|
9402
9473
|
|
|
@@ -10091,6 +10162,11 @@ class SpotifyClient:
|
|
|
10091
10162
|
target="_blank">Spotify Developer Forum Blog</a> page.
|
|
10092
10163
|
<span>
|
|
10093
10164
|
|
|
10165
|
+
Filter criteria is applied after data (up to the limit) has been retrieved.
|
|
10166
|
+
This is important, in that if you set the limit too low it will not find any matching entries because
|
|
10167
|
+
it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
|
|
10168
|
+
is considered by the filter.
|
|
10169
|
+
|
|
10094
10170
|
<details>
|
|
10095
10171
|
<summary>Sample Code - Manual Paging</summary>
|
|
10096
10172
|
```python
|
|
@@ -10742,6 +10818,11 @@ class SpotifyClient:
|
|
|
10742
10818
|
The reasoning for that is unclear, but the `excludeAudiobooks` argument allows you to
|
|
10743
10819
|
only return podcast shows in the results if desired.
|
|
10744
10820
|
|
|
10821
|
+
Filter criteria is applied after data (up to the limit) has been retrieved.
|
|
10822
|
+
This is important, in that if you set the limit too low it will not find any matching entries because
|
|
10823
|
+
it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
|
|
10824
|
+
is considered by the filter.
|
|
10825
|
+
|
|
10745
10826
|
<details>
|
|
10746
10827
|
<summary>Sample Code - Manual Paging</summary>
|
|
10747
10828
|
```python
|
|
@@ -11732,6 +11813,11 @@ class SpotifyClient:
|
|
|
11732
11813
|
SpotifyApiError:
|
|
11733
11814
|
If the method fails for any other reason.
|
|
11734
11815
|
|
|
11816
|
+
Filter criteria is applied after data (up to the limit) has been retrieved.
|
|
11817
|
+
This is important, in that if you set the limit too low it will not find any matching entries because
|
|
11818
|
+
it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
|
|
11819
|
+
is considered by the filter.
|
|
11820
|
+
|
|
11735
11821
|
<details>
|
|
11736
11822
|
<summary>Sample Code - Manual Paging</summary>
|
|
11737
11823
|
```python
|
|
@@ -12809,6 +12895,11 @@ class SpotifyClient:
|
|
|
12809
12895
|
SpotifyApiError:
|
|
12810
12896
|
If the method fails for any other reason.
|
|
12811
12897
|
|
|
12898
|
+
Filter criteria is applied after data (up to the limit) has been retrieved.
|
|
12899
|
+
This is important, in that if you set the limit too low it will not find any matching entries because
|
|
12900
|
+
it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
|
|
12901
|
+
is considered by the filter.
|
|
12902
|
+
|
|
12812
12903
|
<details>
|
|
12813
12904
|
<summary>Sample Code - Manual Paging</summary>
|
|
12814
12905
|
```python
|
|
@@ -13008,6 +13099,11 @@ class SpotifyClient:
|
|
|
13008
13099
|
SpotifyApiError:
|
|
13009
13100
|
If the method fails for any other reason.
|
|
13010
13101
|
|
|
13102
|
+
Filter criteria is applied after data (up to the limit) has been retrieved.
|
|
13103
|
+
This is important, in that if you set the limit too low it will not find any matching entries because
|
|
13104
|
+
it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
|
|
13105
|
+
is considered by the filter.
|
|
13106
|
+
|
|
13011
13107
|
<details>
|
|
13012
13108
|
<summary>Sample Code - Manual Paging</summary>
|
|
13013
13109
|
```python
|
|
@@ -39,6 +39,7 @@ class SpotifyWebApiError(Exception):
|
|
|
39
39
|
self._Message:str = message
|
|
40
40
|
self._MethodName:str = methodName
|
|
41
41
|
self._Status:int = status
|
|
42
|
+
self._RetryAfter:int = 0
|
|
42
43
|
|
|
43
44
|
# trace.
|
|
44
45
|
if logsi is not None:
|
|
@@ -95,6 +96,29 @@ class SpotifyWebApiError(Exception):
|
|
|
95
96
|
return self._Status
|
|
96
97
|
|
|
97
98
|
|
|
99
|
+
@property
|
|
100
|
+
def RetryAfter(self) -> int:
|
|
101
|
+
"""
|
|
102
|
+
The number of seconds to wait before retrying a method call that resulted in
|
|
103
|
+
an HTTP status of 429 (rate-limit exceeded).
|
|
104
|
+
|
|
105
|
+
This value is only valid if the HTTP response headers contained a `retry-after` key.
|
|
106
|
+
This usually only happens when HTTP status code = 429.
|
|
107
|
+
|
|
108
|
+
Example: `21`
|
|
109
|
+
"""
|
|
110
|
+
return self._RetryAfter
|
|
111
|
+
|
|
112
|
+
@RetryAfter.setter
|
|
113
|
+
def RetryAfter(self, value:int):
|
|
114
|
+
"""
|
|
115
|
+
Sets the RetryAfter property value.
|
|
116
|
+
"""
|
|
117
|
+
if isinstance(value, int):
|
|
118
|
+
if (value > 0):
|
|
119
|
+
self._RetryAfter = value
|
|
120
|
+
|
|
121
|
+
|
|
98
122
|
def ToString(self) -> str:
|
|
99
123
|
"""
|
|
100
124
|
Returns a UI-friendly string representation of the class.
|
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
spotifywebapipython/__init__.py,sha256=ka7F2AsT-UU7KSYKBnfgl5Trojcep5aQspLutg8D-2k,1306
|
|
2
|
-
spotifywebapipython/const.py,sha256=
|
|
2
|
+
spotifywebapipython/const.py,sha256=6q8hXDRbRsFImRQZOMxSxpWHJ3qBzaO75oGsnIBnyvM,4100
|
|
3
3
|
spotifywebapipython/saappmessages.py,sha256=mVprjpd5CdD8kYeAkLzRvMvIQPmaYtH4UCP5my3QhSk,5065
|
|
4
4
|
spotifywebapipython/sautils.py,sha256=LZF3UvxaBK35WIg1hO37nbW8j1y-M-oOxRbi1dPR39w,8746
|
|
5
5
|
spotifywebapipython/spotifyapierror.py,sha256=23_CYlxWN0BceYYCLpBpunl55vEwPr_wFf34l74xzeA,1855
|
|
6
6
|
spotifywebapipython/spotifyapimessage.py,sha256=wCnW8jYMLS3x9kjyXPgXXZqaf1HeMTTXzU8u_Dm5pfA,8447
|
|
7
7
|
spotifywebapipython/spotifyauthtoken.py,sha256=iVg2Pa5mfMqYe4qgc5H8td6JzJlaDqk4vMEhH5LmtfI,9289
|
|
8
|
-
spotifywebapipython/spotifyclient.py,sha256=
|
|
8
|
+
spotifywebapipython/spotifyclient.py,sha256=2ZNeq8Ts2BvBBCB1Ktnq74dMa_KUbMqSPUNrRHKJ5cQ,928610
|
|
9
9
|
spotifywebapipython/spotifydiscovery.py,sha256=cyysxl8PQj9yGHVbaqhSF3SStlrp-NvfGAudM-dDmg0,20290
|
|
10
10
|
spotifywebapipython/spotifymediatypes.py,sha256=hMjkxhbfTtks0_P8BKmY7qg3EmB2zhH3RT0DbEpb_2s,1628
|
|
11
11
|
spotifywebapipython/spotifytypeprefixes.py,sha256=3yfpxKF7jF694qBuo-PbKYvm70YwwdBoGj9enOpWsAg,1375
|
|
12
12
|
spotifywebapipython/spotifywebapiauthenticationerror.py,sha256=5A0MKvYo3Ypv0ZeSSfLHuFLwzoUUu044bBoUgMfNXNw,3940
|
|
13
|
-
spotifywebapipython/spotifywebapierror.py,sha256=
|
|
13
|
+
spotifywebapipython/spotifywebapierror.py,sha256=ctYFvkBPlFFEoM_geP6hzwTyC2mPcrYR_zCCNvsmpwc,3870
|
|
14
14
|
spotifywebapipython/spotifywebplayertoken.py,sha256=axj1j1lM7COiiZfpElkJRdnk4AmE6bAQcjKshUIz1Nk,35813
|
|
15
|
-
spotifywebapipython/docs/__init__.html,sha256=
|
|
15
|
+
spotifywebapipython/docs/__init__.html,sha256=OCHcyOCJnVMenwqoVwEOc6bTRipOvxXoeQbOgmcCO5w,198047
|
|
16
16
|
spotifywebapipython/docs/codecopy.js,sha256=ryuoZwLIL03YitjjFzn49UO5ta7-OBos6LNA3qHhFzs,3120
|
|
17
|
-
spotifywebapipython/docs/index.html,sha256=
|
|
18
|
-
spotifywebapipython/docs/search.js,sha256=
|
|
17
|
+
spotifywebapipython/docs/index.html,sha256=zLysGOx8QSypT1OVFGBPfVrRQmjZRV-a_sqhZQODmF4,48779
|
|
18
|
+
spotifywebapipython/docs/search.js,sha256=St8jC3-blXEixZW1UGzamEP8KYD-IHTi1Cwsl-ufWYQ,9266834
|
|
19
19
|
spotifywebapipython/docs/spotifywebapipython.ico,sha256=YImj39fqqSPSuB2-sMDlUYDd6YwRfQeJRtq4FjwWglg,16410
|
|
20
20
|
spotifywebapipython/docs/spotifywebapipython_OLD.ico,sha256=YIv5LjcD4bTIJQSOr8jjwbWaeB3QkElRwkTOePiGbZo,14904
|
|
21
|
-
spotifywebapipython/docs/spotifywebapipython/const.html,sha256=
|
|
22
|
-
spotifywebapipython/docs/spotifywebapipython/saappmessages.html,sha256=
|
|
23
|
-
spotifywebapipython/docs/spotifywebapipython/sautils.html,sha256=
|
|
24
|
-
spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html,sha256=
|
|
25
|
-
spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html,sha256=
|
|
26
|
-
spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html,sha256=
|
|
27
|
-
spotifywebapipython/docs/spotifywebapipython/spotifyclient.html,sha256=
|
|
28
|
-
spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html,sha256=
|
|
29
|
-
spotifywebapipython/docs/spotifywebapipython/spotifymediatypes.html,sha256=
|
|
30
|
-
spotifywebapipython/docs/spotifywebapipython/spotifytypeprefixes.html,sha256=
|
|
31
|
-
spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html,sha256=
|
|
32
|
-
spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html,sha256=
|
|
33
|
-
spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html,sha256=
|
|
21
|
+
spotifywebapipython/docs/spotifywebapipython/const.html,sha256=z8Pwbp4KAgRrczw7NiHvOgIuwOf6hQri-AjPRMwBW2E,60537
|
|
22
|
+
spotifywebapipython/docs/spotifywebapipython/saappmessages.html,sha256=apkwmkh_GX0hed8VZ6YDhpbanxBTxQbQSgDa7yEUUhU,62358
|
|
23
|
+
spotifywebapipython/docs/spotifywebapipython/sautils.html,sha256=PgwlvUCrO_170gLabuqhXYjBZB5g-cLd0FPyfLJOd_o,62031
|
|
24
|
+
spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html,sha256=bS1FNnjlkpnqwY-p_NeayY0JEncb248wiU1e9Hk37fg,48054
|
|
25
|
+
spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html,sha256=JtSoDUt0UUs-Gkg7v_dmg1_rXhb1U-o44rTq_sh42x0,59210
|
|
26
|
+
spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html,sha256=hnQrfu_NqBqIb4giFxzBwPCxyg8LU_uX7w4_M-9z_go,59256
|
|
27
|
+
spotifywebapipython/docs/spotifywebapipython/spotifyclient.html,sha256=66poT0FvYL_k2LESBFB1XQAcIpwnCFVh33lFdE4BkKQ,1677607
|
|
28
|
+
spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html,sha256=YqRH3_f4lqUxf6hCyu8d8KJ5dKS6F-Jj-CVlz86X5gg,57662
|
|
29
|
+
spotifywebapipython/docs/spotifywebapipython/spotifymediatypes.html,sha256=64rEBnefUE5ONGlm2Vv7nF_6GkYFauKOzWw9BXPamaI,51532
|
|
30
|
+
spotifywebapipython/docs/spotifywebapipython/spotifytypeprefixes.html,sha256=MrX-XTuvo1McnRnLEFvhiFLSa6m1UkFW2I8n34eBgG0,52401
|
|
31
|
+
spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html,sha256=J4KZZKdfs7XOKab4iPwwaz8YP2zKpX65ZCYWzYo-yUw,52174
|
|
32
|
+
spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html,sha256=1MBsgUeuV6lq1DWketWRF4LOD9Fj-eLYVpk3qCr7ajw,51484
|
|
33
|
+
spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html,sha256=ROdAbP5gfsKgsSmHSgT7o5Vw0phaagS3WowMAZoHlfg,62204
|
|
34
34
|
spotifywebapipython/models/__init__.py,sha256=RwRQhUX-6EUs8XvStVFpR8EPwoqIAz9K6ref-28qHKI,4423
|
|
35
35
|
spotifywebapipython/models/album.py,sha256=U3Pdw0-EL33LdkeiN31fjZ23rlLk6DNGV8jRmZU7EyQ,5170
|
|
36
36
|
spotifywebapipython/models/albumpagesaved.py,sha256=SBYMhkh5ZsMrRAXl-cm9zsxMDh8gO190ENq6Py2TyGY,2417
|
|
@@ -137,8 +137,8 @@ spotifywebapipython/zeroconfapi/zeroconfgetinfo.py,sha256=APayso_F7lCsdzzrkescgd
|
|
|
137
137
|
spotifywebapipython/zeroconfapi/zeroconfgetinfoalias.py,sha256=FZJM23HIPJSfhXIC3-EuS1XhawheoG5maSp7__k4yBo,2932
|
|
138
138
|
spotifywebapipython/zeroconfapi/zeroconfgetinfodrmmediaformat.py,sha256=c5uk8ljsIuBK3w2jahHKQuoWvm245LOjUBitetXx5Mo,2347
|
|
139
139
|
spotifywebapipython/zeroconfapi/zeroconfresponse.py,sha256=mAPIDj5MG53x8peiScrp7OJblwy_o_Sto4wqE0rGujU,6445
|
|
140
|
-
spotifywebapipython-1.0.
|
|
141
|
-
spotifywebapipython-1.0.
|
|
142
|
-
spotifywebapipython-1.0.
|
|
143
|
-
spotifywebapipython-1.0.
|
|
144
|
-
spotifywebapipython-1.0.
|
|
140
|
+
spotifywebapipython-1.0.289.dist-info/LICENSE,sha256=KGcc9g0zwqNLcWnSn_ezv1UtKyhMENFhvtixpxUPNsE,1177
|
|
141
|
+
spotifywebapipython-1.0.289.dist-info/METADATA,sha256=rZ0Y-1PyNMsKsvXKjppoFUAnM8i58jBcBgnc5bxsOGA,11644
|
|
142
|
+
spotifywebapipython-1.0.289.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
|
143
|
+
spotifywebapipython-1.0.289.dist-info/top_level.txt,sha256=jTBLFlijKTesYh2dteAz4vb17qjaqWKeDjpnnwTcrjs,20
|
|
144
|
+
spotifywebapipython-1.0.289.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{spotifywebapipython-1.0.287.dist-info → spotifywebapipython-1.0.289.dist-info}/top_level.txt
RENAMED
|
File without changes
|