spotifywebapiPython 1.0.255__py3-none-any.whl → 1.0.257__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 +6 -1
- spotifywebapipython/docs/__init__.html +14 -2
- spotifywebapipython/docs/index.html +2 -2
- spotifywebapipython/docs/search.js +1 -1
- spotifywebapipython/docs/spotifywebapipython/const.html +20 -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 +10 -8
- spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html +2 -2
- spotifywebapipython/models/userprofile.py +24 -0
- spotifywebapipython/models/userprofilesimplified.py +32 -0
- spotifywebapipython/spotifyclient.py +68 -20
- spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastapptask.py +8 -0
- {spotifywebapipython-1.0.255.dist-info → spotifywebapipython-1.0.257.dist-info}/METADATA +1 -1
- {spotifywebapipython-1.0.255.dist-info → spotifywebapipython-1.0.257.dist-info}/RECORD +24 -24
- {spotifywebapipython-1.0.255.dist-info → spotifywebapipython-1.0.257.dist-info}/LICENSE +0 -0
- {spotifywebapipython-1.0.255.dist-info → spotifywebapipython-1.0.257.dist-info}/WHEEL +0 -0
- {spotifywebapipython-1.0.255.dist-info → spotifywebapipython-1.0.257.dist-info}/top_level.txt +0 -0
|
@@ -46,6 +46,7 @@ from .sautils import (
|
|
|
46
46
|
from .const import (
|
|
47
47
|
SPOTIFY_API_AUTHORIZE_URL,
|
|
48
48
|
SPOTIFY_API_TOKEN_URL,
|
|
49
|
+
SPOTIFY_DESKTOP_APP_CLIENT_DISPLAY_NAME,
|
|
49
50
|
SPOTIFY_DESKTOP_APP_CLIENT_ID,
|
|
50
51
|
SPOTIFY_DEFAULT_MARKET,
|
|
51
52
|
SPOTIFY_WEBAPI_URL_BASE,
|
|
@@ -7252,12 +7253,13 @@ class SpotifyClient:
|
|
|
7252
7253
|
uri:str,
|
|
7253
7254
|
) -> str:
|
|
7254
7255
|
"""
|
|
7255
|
-
Get the id portion from a Spotify uri value.
|
|
7256
|
+
Get the id portion from a Spotify uri (or url) value.
|
|
7256
7257
|
|
|
7257
7258
|
Args:
|
|
7258
7259
|
uri (str):
|
|
7259
|
-
The Spotify URI value.
|
|
7260
|
-
Example: `spotify:track:5v5ETK9WFXAnGQ3MRubKuE`
|
|
7260
|
+
The Spotify URI (or url) value.
|
|
7261
|
+
Example: `spotify:track:5v5ETK9WFXAnGQ3MRubKuE`
|
|
7262
|
+
Example: `https://open.spotify.com/track/5v5ETK9WFXAnGQ3MRubKuE`
|
|
7261
7263
|
|
|
7262
7264
|
Returns:
|
|
7263
7265
|
A string containing the id value.
|
|
@@ -7272,13 +7274,19 @@ class SpotifyClient:
|
|
|
7272
7274
|
if uri is None or len(uri.strip()) == 0:
|
|
7273
7275
|
return result
|
|
7274
7276
|
|
|
7275
|
-
#
|
|
7277
|
+
# is this a uri value (e.g. "spotify:track:5v5ETK9WFXAnGQ3MRubKuE")?
|
|
7276
7278
|
colonCnt:int = uri.count(':')
|
|
7277
7279
|
if colonCnt == 2:
|
|
7278
7280
|
idx:int = uri.rfind(':')
|
|
7279
7281
|
if idx > -1:
|
|
7280
7282
|
result = uri[idx+1:]
|
|
7281
7283
|
|
|
7284
|
+
# is this a url value (e.g. "https://open.spotify.com/track/5v5ETK9WFXAnGQ3MRubKuE")?
|
|
7285
|
+
elif (uri.startswith("http")):
|
|
7286
|
+
idx = uri.rfind("/")
|
|
7287
|
+
if (idx > 0):
|
|
7288
|
+
result = uri[idx + 1:len(uri)]
|
|
7289
|
+
|
|
7282
7290
|
return result
|
|
7283
7291
|
|
|
7284
7292
|
except Exception:
|
|
@@ -11698,12 +11706,13 @@ class SpotifyClient:
|
|
|
11698
11706
|
uri:str,
|
|
11699
11707
|
) -> str:
|
|
11700
11708
|
"""
|
|
11701
|
-
Get the type portion from a Spotify uri value.
|
|
11709
|
+
Get the type portion from a Spotify uri (or url) value.
|
|
11702
11710
|
|
|
11703
11711
|
Args:
|
|
11704
11712
|
uri (str):
|
|
11705
|
-
The Spotify URI value.
|
|
11706
|
-
Example: `spotify:track:5v5ETK9WFXAnGQ3MRubKuE`
|
|
11713
|
+
The Spotify URI (or URL) value.
|
|
11714
|
+
Example: `spotify:track:5v5ETK9WFXAnGQ3MRubKuE`
|
|
11715
|
+
Example: `https://open.spotify.com/track/5v5ETK9WFXAnGQ3MRubKuE`
|
|
11707
11716
|
|
|
11708
11717
|
Returns:
|
|
11709
11718
|
A string containing the type value (e.g. `track`).
|
|
@@ -11718,7 +11727,7 @@ class SpotifyClient:
|
|
|
11718
11727
|
if uri is None or len(uri.strip()) == 0:
|
|
11719
11728
|
return result
|
|
11720
11729
|
|
|
11721
|
-
#
|
|
11730
|
+
# is this a uri value (e.g. "spotify:track:5v5ETK9WFXAnGQ3MRubKuE")?
|
|
11722
11731
|
colonCnt:int = uri.count(':')
|
|
11723
11732
|
if colonCnt == 2:
|
|
11724
11733
|
idxStart:int = uri.find(':')
|
|
@@ -11729,6 +11738,14 @@ class SpotifyClient:
|
|
|
11729
11738
|
if idxEnd > -1:
|
|
11730
11739
|
result = uri[idxStart+1:idxEnd]
|
|
11731
11740
|
|
|
11741
|
+
# is this a url value (e.g. "https://open.spotify.com/track/5v5ETK9WFXAnGQ3MRubKuE")?
|
|
11742
|
+
elif (uri.startswith("http")):
|
|
11743
|
+
idxR = uri.rfind("/")
|
|
11744
|
+
if (idxR > 0):
|
|
11745
|
+
idxL = uri.rfind("/", 0, idxR - 1)
|
|
11746
|
+
if (idxR > -1):
|
|
11747
|
+
result = uri[idxL + 1:idxR]
|
|
11748
|
+
|
|
11732
11749
|
return result
|
|
11733
11750
|
|
|
11734
11751
|
except Exception as ex:
|
|
@@ -12807,6 +12824,10 @@ class SpotifyClient:
|
|
|
12807
12824
|
# trace.
|
|
12808
12825
|
_logsi.LogVerbose("Context will be played on the Spotify Connect device via Spotify Web API")
|
|
12809
12826
|
|
|
12827
|
+
# get uri parts.
|
|
12828
|
+
uriType:str = self.GetTypeFromUri(contextUri)
|
|
12829
|
+
uriId:str = self.GetIdFromUri(contextUri)
|
|
12830
|
+
|
|
12810
12831
|
# get current player state.
|
|
12811
12832
|
playerState:PlayerPlayState = self.GetPlayerPlaybackState(additionalTypes=SpotifyMediaTypes.EPISODE.value)
|
|
12812
12833
|
|
|
@@ -12823,9 +12844,6 @@ class SpotifyClient:
|
|
|
12823
12844
|
# is shuffle enabled? and is this a Spotify URI value (e.g. `spotify:type:id`)?
|
|
12824
12845
|
if (shuffle or playerState.IsShuffleEnabled) and (self.IsSpotifyUri(contextUri)):
|
|
12825
12846
|
|
|
12826
|
-
# get uri parts.
|
|
12827
|
-
uriType:str = self.GetTypeFromUri(contextUri)
|
|
12828
|
-
uriId:str = self.GetIdFromUri(contextUri)
|
|
12829
12847
|
uriItems:PageObject = None
|
|
12830
12848
|
|
|
12831
12849
|
# wrap this in a try, as errors will be returned if context contains
|
|
@@ -12837,9 +12855,7 @@ class SpotifyClient:
|
|
|
12837
12855
|
|
|
12838
12856
|
# get number of items in the context, up to 50 max.
|
|
12839
12857
|
# we limit it to 50 to keep it fast, as some context lists are quite large!
|
|
12840
|
-
# note that playlist type is the only type we can limit the
|
|
12841
|
-
# note that offset cannot be specified for artist context type; a `400 - Bad Request
|
|
12842
|
-
# Can't have offset for context type: ARTIST` error is returned if specified.
|
|
12858
|
+
# note that playlist type is the only type we can limit the fields to be returned.
|
|
12843
12859
|
if (uriType == SpotifyMediaTypes.PLAYLIST.value):
|
|
12844
12860
|
uriItems = self.GetPlaylistItems(uriId, limitTotal=50, fields="items(track(name))")
|
|
12845
12861
|
elif (uriType == SpotifyMediaTypes.ALBUM.value):
|
|
@@ -12857,6 +12873,14 @@ class SpotifyClient:
|
|
|
12857
12873
|
offsetPosition = random.randint(0, uriItems.ItemsCount - 1)
|
|
12858
12874
|
_logsi.LogVerbose("Shuffle is enabled; setting random offsetPosition to %s" % str(offsetPosition))
|
|
12859
12875
|
|
|
12876
|
+
# offset cannot be specified for artist context type, otherwise the following error
|
|
12877
|
+
# is returneed: `400 - Bad Request can't have offset for context type: ARTIST`.
|
|
12878
|
+
if (uriType == SpotifyMediaTypes.ARTIST.value):
|
|
12879
|
+
if (offsetUri is not None) or (offsetPosition > 0):
|
|
12880
|
+
_logsi.LogVerbose("Context uri type is artist; ignoring offsetPosition and offsetUri values")
|
|
12881
|
+
offsetPosition = 0
|
|
12882
|
+
offsetUri = None
|
|
12883
|
+
|
|
12860
12884
|
# build spotify web api request parameters.
|
|
12861
12885
|
reqData:dict = \
|
|
12862
12886
|
{
|
|
@@ -17670,13 +17694,37 @@ class SpotifyClient:
|
|
|
17670
17694
|
|
|
17671
17695
|
_logsi.LogVerbose('OAuth2 authorization token has not expired')
|
|
17672
17696
|
|
|
17673
|
-
#
|
|
17674
|
-
|
|
17675
|
-
msg.RequestHeaders[self.AuthToken.HeaderKey] = self.AuthToken.HeaderValue
|
|
17676
|
-
self.MakeRequest('GET', msg)
|
|
17697
|
+
# trace.
|
|
17698
|
+
_logsi.LogVerbose('Retrieving Spotify user basic details for UserProfile object')
|
|
17677
17699
|
|
|
17678
|
-
#
|
|
17679
|
-
|
|
17700
|
+
# if this is the spotify desktop application client id, then we don't want to
|
|
17701
|
+
# try and use it with the Spotify Web API as it's only good for activating
|
|
17702
|
+
# Google Chromecast devices.
|
|
17703
|
+
# As of 2025/12/15, a "429 - API rate limit exceeded" error will be returned if we
|
|
17704
|
+
# try to get user profile via the Spotify Web API with the desktop client id auth token!
|
|
17705
|
+
if clientId.lower() == SPOTIFY_DESKTOP_APP_CLIENT_ID:
|
|
17706
|
+
|
|
17707
|
+
# get Spotify ID from auth token "username" key; or use method argument
|
|
17708
|
+
# value if the "username" value is not present in the auth token.
|
|
17709
|
+
profileId:str = oauth2token.get("username", None) or tokenProfileId
|
|
17710
|
+
|
|
17711
|
+
# create basic UserProfile from auth token details.
|
|
17712
|
+
userProfile:UserProfile = UserProfile()
|
|
17713
|
+
userProfile.Id = profileId
|
|
17714
|
+
userProfile.DisplayName = SPOTIFY_DESKTOP_APP_CLIENT_DISPLAY_NAME % profileId
|
|
17715
|
+
userProfile.Product = "premium"
|
|
17716
|
+
userProfile.Type = "user"
|
|
17717
|
+
self._UserProfile = userProfile
|
|
17718
|
+
|
|
17719
|
+
else:
|
|
17720
|
+
|
|
17721
|
+
# retrieve spotify user basic details.
|
|
17722
|
+
msg:SpotifyApiMessage = SpotifyApiMessage(apiMethodName, '/me')
|
|
17723
|
+
msg.RequestHeaders[self.AuthToken.HeaderKey] = self.AuthToken.HeaderValue
|
|
17724
|
+
self.MakeRequest('GET', msg)
|
|
17725
|
+
|
|
17726
|
+
# process results.
|
|
17727
|
+
self._UserProfile = UserProfile(root=msg.ResponseData)
|
|
17680
17728
|
|
|
17681
17729
|
# trace.
|
|
17682
17730
|
_logsi.LogObject(SILevel.Verbose, TRACE_MSG_USERPROFILE % (self._UserProfile.DisplayName, self._UserProfile.EMail), self._UserProfile, excludeNonPublic=True)
|
|
@@ -11,6 +11,7 @@ from spotifywebapipython.oauthcli.authclient import AuthClient
|
|
|
11
11
|
from spotifywebapipython.const import (
|
|
12
12
|
SPOTIFY_API_AUTHORIZE_URL,
|
|
13
13
|
SPOTIFY_API_TOKEN_URL,
|
|
14
|
+
SPOTIFY_DESKTOP_APP_CLIENT_DISPLAY_NAME,
|
|
14
15
|
SPOTIFY_DESKTOP_APP_CLIENT_ID,
|
|
15
16
|
TRACE_METHOD_RESULT,
|
|
16
17
|
)
|
|
@@ -442,6 +443,13 @@ class SpotifyConnectZeroconfCastAppTask(threading.Thread):
|
|
|
442
443
|
oauth2token:dict = authClient.RefreshToken()
|
|
443
444
|
authToken = SpotifyAuthToken(authClient.AuthorizationType, authClient.TokenProfileId, root=oauth2token)
|
|
444
445
|
_logsi.LogObject(SILevel.Verbose, TRACE_METHOD_RESULT % apiMethodName, authToken, excludeNonPublic=True)
|
|
446
|
+
|
|
447
|
+
# for the spotify desktop application client id, we will add some arguments
|
|
448
|
+
# to the token to denote what user it's for. These arguments were initially added
|
|
449
|
+
# by the AuthTokenGenerator.py script, but were dropped when the token was refreshed.
|
|
450
|
+
oauth2token["title"] = SPOTIFY_DESKTOP_APP_CLIENT_DISPLAY_NAME % self._SpotifyClientInstance.UserProfile.Id
|
|
451
|
+
oauth2token["username"] = self._SpotifyClientInstance.UserProfile.Id
|
|
452
|
+
authClient.SaveToken(oauth2token)
|
|
445
453
|
|
|
446
454
|
else:
|
|
447
455
|
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
spotifywebapipython/__init__.py,sha256=SnB5BsUGChYgcZHjhZenqYZkb_v3c8aiAUQLkp4lYSY,1205
|
|
2
|
-
spotifywebapipython/const.py,sha256=
|
|
2
|
+
spotifywebapipython/const.py,sha256=jgs3BMGfB2F17GNem9OFU_deaMak9iORwxmWCaPim9o,3923
|
|
3
3
|
spotifywebapipython/saappmessages.py,sha256=KWy4H0ePYARZgtGYc2CHXRY0JOQ0bqr0JuDKRBu-wjA,4645
|
|
4
4
|
spotifywebapipython/sautils.py,sha256=j3f_Lu3Tb5D7-Gd2rJ2Ep901W-4XDp6Vq6XXVl8DX5I,8098
|
|
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=ie83oTfHKtUivpDtdcqfuXhL3PtnP7deCzEOwEyHOkM,854614
|
|
9
9
|
spotifywebapipython/spotifydiscovery.py,sha256=cyysxl8PQj9yGHVbaqhSF3SStlrp-NvfGAudM-dDmg0,20290
|
|
10
10
|
spotifywebapipython/spotifymediatypes.py,sha256=MkHdPc1BF5hWo4WA-b4PtoihNKJMTXOe9JdnGpzp79c,1608
|
|
11
11
|
spotifywebapipython/spotifywebapiauthenticationerror.py,sha256=5A0MKvYo3Ypv0ZeSSfLHuFLwzoUUu044bBoUgMfNXNw,3940
|
|
12
12
|
spotifywebapipython/spotifywebapierror.py,sha256=5cga9213J_nFQ0UX4vSn3dpyinASKTRiH0wAR4nLjvs,3147
|
|
13
13
|
spotifywebapipython/spotifywebplayertoken.py,sha256=axj1j1lM7COiiZfpElkJRdnk4AmE6bAQcjKshUIz1Nk,35813
|
|
14
|
-
spotifywebapipython/docs/__init__.html,sha256=
|
|
14
|
+
spotifywebapipython/docs/__init__.html,sha256=bUZN--2S5sDbBZfvly7nVhEZKlMqpRSDW50okaFKuU0,181568
|
|
15
15
|
spotifywebapipython/docs/codecopy.js,sha256=ryuoZwLIL03YitjjFzn49UO5ta7-OBos6LNA3qHhFzs,3120
|
|
16
|
-
spotifywebapipython/docs/index.html,sha256=
|
|
17
|
-
spotifywebapipython/docs/search.js,sha256=
|
|
16
|
+
spotifywebapipython/docs/index.html,sha256=Gmi_Tx9f7iwXe3ZEL8b9vaZgJXT8MhrRhQQuhToZUVs,48523
|
|
17
|
+
spotifywebapipython/docs/search.js,sha256=hcJ3Jz1gKYXg689mMFJjKd1SXQS6Byr3Z0v9BIbYchM,8956078
|
|
18
18
|
spotifywebapipython/docs/spotifywebapipython.ico,sha256=YImj39fqqSPSuB2-sMDlUYDd6YwRfQeJRtq4FjwWglg,16410
|
|
19
19
|
spotifywebapipython/docs/spotifywebapipython_OLD.ico,sha256=YIv5LjcD4bTIJQSOr8jjwbWaeB3QkElRwkTOePiGbZo,14904
|
|
20
|
-
spotifywebapipython/docs/spotifywebapipython/const.html,sha256=
|
|
21
|
-
spotifywebapipython/docs/spotifywebapipython/saappmessages.html,sha256=
|
|
22
|
-
spotifywebapipython/docs/spotifywebapipython/sautils.html,sha256=
|
|
23
|
-
spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html,sha256=
|
|
24
|
-
spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html,sha256=
|
|
25
|
-
spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html,sha256=
|
|
26
|
-
spotifywebapipython/docs/spotifywebapipython/spotifyclient.html,sha256=
|
|
27
|
-
spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html,sha256=
|
|
28
|
-
spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html,sha256=
|
|
29
|
-
spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html,sha256=
|
|
30
|
-
spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html,sha256=
|
|
20
|
+
spotifywebapipython/docs/spotifywebapipython/const.html,sha256=3J_7HvnFeBNmkrALiZNk03XZpG7xseEBEyamO2CPOsQ,59805
|
|
21
|
+
spotifywebapipython/docs/spotifywebapipython/saappmessages.html,sha256=XuTpWcNB5Q52rosV2flN97I7StpB-X1EVRM8AM-jik0,60895
|
|
22
|
+
spotifywebapipython/docs/spotifywebapipython/sautils.html,sha256=RI8LIAmwugtbTiioNYmjtdWN8RtxiTU4nrrx_pHDHZY,61063
|
|
23
|
+
spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html,sha256=q5O9N9u_6XyB8fmgCngl_DtG_k09GiupTDE1Tu-Jgdw,48054
|
|
24
|
+
spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html,sha256=cKizSSvWGcVvCml5JzBiEOg0HxCN4FarRYCtgrE5tag,59210
|
|
25
|
+
spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html,sha256=SjQOh35OyvLCuibG8lpt4PnipF0dkRmmWHE-PMpOHMk,59256
|
|
26
|
+
spotifywebapipython/docs/spotifywebapipython/spotifyclient.html,sha256=gNev_KrzWQlFvYuKlPmD1IuOJmOBGjQQcegYCZJ8Tf0,1635516
|
|
27
|
+
spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html,sha256=GbqOQM1r9C6mCWBXola0ufaU0VN04oWRrkmvrd6n4Ac,57662
|
|
28
|
+
spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html,sha256=7dxLLSg_mZQqpmvBI1hUwbUqS56Z2Tu6UNrgWh1lQHA,52174
|
|
29
|
+
spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html,sha256=4vRRIilvy2CpH-FOla-j477VvT4XqSBE7OrMDItVm1Y,50592
|
|
30
|
+
spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html,sha256=qsH_bbs3dt2jZmOgb1w03poLscrmt1wGDIuE8bgxLwE,62204
|
|
31
31
|
spotifywebapipython/models/__init__.py,sha256=RwRQhUX-6EUs8XvStVFpR8EPwoqIAz9K6ref-28qHKI,4423
|
|
32
32
|
spotifywebapipython/models/album.py,sha256=U3Pdw0-EL33LdkeiN31fjZ23rlLk6DNGV8jRmZU7EyQ,5170
|
|
33
33
|
spotifywebapipython/models/albumpagesaved.py,sha256=SBYMhkh5ZsMrRAXl-cm9zsxMDh8gO190ENq6Py2TyGY,2417
|
|
@@ -99,8 +99,8 @@ spotifywebapipython/models/trackpagesimplified.py,sha256=DBYo2WRq8MXVG9PCp0xv1su
|
|
|
99
99
|
spotifywebapipython/models/trackrecommendations.py,sha256=D-CJRxOoX5jGKkxthjg5ZcQ_MITPt8InPUNZh-g4pQg,2507
|
|
100
100
|
spotifywebapipython/models/tracksaved.py,sha256=uwnTpawf7ymXlF_b4p1RyjonUwUFRp0q_y_kuSP6Vfs,2725
|
|
101
101
|
spotifywebapipython/models/tracksimplified.py,sha256=fqIH45BsTRPbwq0ytss3r9YTCn1TtJSwBLAelJ2dWJY,13199
|
|
102
|
-
spotifywebapipython/models/userprofile.py,sha256=
|
|
103
|
-
spotifywebapipython/models/userprofilesimplified.py,sha256=
|
|
102
|
+
spotifywebapipython/models/userprofile.py,sha256=VXHP-wSWGSIiDebGDuT4fFNBCmx_ME6Hn1NO5QyyBQY,6482
|
|
103
|
+
spotifywebapipython/models/userprofilesimplified.py,sha256=YCEVED8PMeqWkORMHwj0JF_tVNqoTc1k_nce63D6kFY,6919
|
|
104
104
|
spotifywebapipython/models/zeroconfdiscoveryresult.py,sha256=5MPSu7pLLh5SBrm7N6UbJ9K2zCNszBQr1CKUArmdk08,20245
|
|
105
105
|
spotifywebapipython/models/zeroconfproperty.py,sha256=sXGUqbHhFMutCNKFJwJKbNbbQAnBnR7Ob5wNDSePxZk,2141
|
|
106
106
|
spotifywebapipython/oauthcli/__init__.py,sha256=K37XTxYAKT0n8otCNzWbjgJ10fAPN4WL6seEpwvWyo4,168
|
|
@@ -108,7 +108,7 @@ spotifywebapipython/oauthcli/authclient.py,sha256=-B_av5cxVHGHOaf8F_Xeo5u-HbOI1y
|
|
|
108
108
|
spotifywebapipython/spotifyconnect/__init__.py,sha256=9Xl5KiJFvWLbsdb4YQ0xmF67i36ybpXCCXrWeNsKEvc,1108
|
|
109
109
|
spotifywebapipython/spotifyconnect/spotifyconnectdeviceeventargs.py,sha256=35hKa0FAaPgy7W8D6MFXmga667pjwXITo8jSj1TDfE8,1988
|
|
110
110
|
spotifywebapipython/spotifyconnect/spotifyconnectdirectorytask.py,sha256=oMuH0jxaAaR_1XOlTT7FNvnGSTHgLXdOej_6RhzqW3o,149143
|
|
111
|
-
spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastapptask.py,sha256=
|
|
111
|
+
spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastapptask.py,sha256=MDG0-L7QPP1mZRQrqVzlWOQ1z9NLTs3Fj46mldWuvXg,22832
|
|
112
112
|
spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastcontroller.py,sha256=mQ7wyrq6f76vpcebudYKv3aFW9YYBIY3C0CGGFSR4yU,32490
|
|
113
113
|
spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastlistener.py,sha256=DCSPmbKPUqKlKpSMvujWBHHKbntXT7_9QkKBgymuTOs,15928
|
|
114
114
|
spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastmultizonecontrollerlistener.py,sha256=AA-XxS6AptJWzyO2zsM9DA5ioCncJBKDTpJkr_aN9IM,12352
|
|
@@ -134,8 +134,8 @@ spotifywebapipython/zeroconfapi/zeroconfgetinfo.py,sha256=APayso_F7lCsdzzrkescgd
|
|
|
134
134
|
spotifywebapipython/zeroconfapi/zeroconfgetinfoalias.py,sha256=FZJM23HIPJSfhXIC3-EuS1XhawheoG5maSp7__k4yBo,2932
|
|
135
135
|
spotifywebapipython/zeroconfapi/zeroconfgetinfodrmmediaformat.py,sha256=c5uk8ljsIuBK3w2jahHKQuoWvm245LOjUBitetXx5Mo,2347
|
|
136
136
|
spotifywebapipython/zeroconfapi/zeroconfresponse.py,sha256=mAPIDj5MG53x8peiScrp7OJblwy_o_Sto4wqE0rGujU,6445
|
|
137
|
-
spotifywebapipython-1.0.
|
|
138
|
-
spotifywebapipython-1.0.
|
|
139
|
-
spotifywebapipython-1.0.
|
|
140
|
-
spotifywebapipython-1.0.
|
|
141
|
-
spotifywebapipython-1.0.
|
|
137
|
+
spotifywebapipython-1.0.257.dist-info/LICENSE,sha256=KGcc9g0zwqNLcWnSn_ezv1UtKyhMENFhvtixpxUPNsE,1177
|
|
138
|
+
spotifywebapipython-1.0.257.dist-info/METADATA,sha256=3_6oMeSDH-dbiUkI-L9H2Q_3p-GEG9r0cOIAMlKFYes,11644
|
|
139
|
+
spotifywebapipython-1.0.257.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
|
140
|
+
spotifywebapipython-1.0.257.dist-info/top_level.txt,sha256=jTBLFlijKTesYh2dteAz4vb17qjaqWKeDjpnnwTcrjs,20
|
|
141
|
+
spotifywebapipython-1.0.257.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{spotifywebapipython-1.0.255.dist-info → spotifywebapipython-1.0.257.dist-info}/top_level.txt
RENAMED
|
File without changes
|