spotifywebapiPython 1.0.259__py3-none-any.whl → 1.0.260__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.
Files changed (26) hide show
  1. spotifywebapipython/const.py +1 -1
  2. spotifywebapipython/docs/__init__.html +9 -2
  3. spotifywebapipython/docs/index.html +2 -2
  4. spotifywebapipython/docs/search.js +1 -1
  5. spotifywebapipython/docs/spotifywebapipython/const.html +3 -3
  6. spotifywebapipython/docs/spotifywebapipython/saappmessages.html +2 -2
  7. spotifywebapipython/docs/spotifywebapipython/sautils.html +2 -2
  8. spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html +2 -2
  9. spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html +2 -2
  10. spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html +2 -2
  11. spotifywebapipython/docs/spotifywebapipython/spotifyclient.html +2 -2
  12. spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html +2 -2
  13. spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html +2 -2
  14. spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html +2 -2
  15. spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html +2 -2
  16. spotifywebapipython/models/zeroconfdiscoveryresult.py +1 -1
  17. spotifywebapipython/spotifyclient.py +16 -3
  18. spotifywebapipython/spotifyconnect/spotifyconnectdirectorytask.py +64 -7
  19. spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastapptask.py +6 -0
  20. spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastcontroller.py +42 -13
  21. spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastlistener.py +12 -0
  22. {spotifywebapipython-1.0.259.dist-info → spotifywebapipython-1.0.260.dist-info}/METADATA +1 -1
  23. {spotifywebapipython-1.0.259.dist-info → spotifywebapipython-1.0.260.dist-info}/RECORD +26 -26
  24. {spotifywebapipython-1.0.259.dist-info → spotifywebapipython-1.0.260.dist-info}/LICENSE +0 -0
  25. {spotifywebapipython-1.0.259.dist-info → spotifywebapipython-1.0.260.dist-info}/WHEEL +0 -0
  26. {spotifywebapipython-1.0.259.dist-info → spotifywebapipython-1.0.260.dist-info}/top_level.txt +0 -0
@@ -32,9 +32,14 @@ if (_logsi == None):
32
32
  _logsi = SIAuto.Si.AddSession(__name__, True)
33
33
  _logsi.SystemLogger = logging.getLogger(__name__)
34
34
 
35
+ # constants - cast app identifiers.
36
+ APP_GOOGLE_INTERNAL_RECEIVER = "705D30C6" # Google Internal Receiver
37
+ APP_SPOTIFY_CONNECT = "531A4F84" # Spotify Connect
38
+ APP_SPOTIFY = "CC32E753" # Spotify (legacy / classic cast)
39
+ APP_SPOTIFY_NAMESPACE = "urn:x-cast:com.spotify.chromecast.secure.v1"
40
+ APP_SPOTIFY_LAUNCH_TIMEOUT = 20.0 # Amount of time to wait for Spotify App launch.
41
+
35
42
  # constants.
36
- APP_SPOTIFY = "CC32E753"
37
- APP_NAMESPACE = "urn:x-cast:com.spotify.chromecast.secure.v1"
38
43
  TYPE_GET_INFO = "getInfo"
39
44
  TYPE_GET_INFO_ERROR = "getInfoError"
40
45
  TYPE_GET_INFO_RESPONSE = "getInfoResponse"
@@ -78,7 +83,7 @@ class SpotifyConnectZeroconfCastController(BaseController):
78
83
  """
79
84
 
80
85
  # invoke base class method.
81
- super().__init__(APP_NAMESPACE, APP_SPOTIFY)
86
+ super().__init__(APP_SPOTIFY_NAMESPACE, APP_SPOTIFY)
82
87
 
83
88
  # initialize storage.
84
89
  self.accessToken:str = accessToken
@@ -88,6 +93,7 @@ class SpotifyConnectZeroconfCastController(BaseController):
88
93
  self.deviceId:str = None
89
94
  self.isAddUserError:bool = False
90
95
  self.isGetInfoError:bool = False
96
+ self.isLaunchError:bool = False
91
97
  self.isLaunched:bool = False
92
98
  self.isPlaybackTransferError:bool = False
93
99
  self.isMessageException:bool = False
@@ -141,6 +147,7 @@ class SpotifyConnectZeroconfCastController(BaseController):
141
147
  self.isLaunched = False
142
148
  self.isAddUserError = False
143
149
  self.isGetInfoError = False
150
+ self.isLaunchError = False
144
151
  self.isPlaybackTransferError = False
145
152
  self.isMessageException = False
146
153
  self.waitAddUser.clear()
@@ -186,6 +193,8 @@ class SpotifyConnectZeroconfCastController(BaseController):
186
193
  raise SpotifyZeroconfApiError(self.zeroconfResponse.Status, "AddUser request failed", "launch_app", self.zeroconfResponse.StatusString)
187
194
  if (self.isGetInfoError):
188
195
  raise SpotifyZeroconfApiError(self.zeroconfResponse.Status, "GetInformation request failed", "launch_app", self.zeroconfResponse.StatusString)
196
+ if (self.isLaunchError):
197
+ raise SpotifyZeroconfApiError(self.zeroconfResponse.Status, "Launch request failed", "launch_app", self.zeroconfResponse.StatusString)
189
198
  if (not self.isLaunched):
190
199
  raise SpotifyConnectZeroconfLaunchError("Spotify Cast App could not be launched")
191
200
 
@@ -244,7 +253,7 @@ class SpotifyConnectZeroconfCastController(BaseController):
244
253
  try:
245
254
 
246
255
  # trace.
247
- _logsi.LogDictionary(SILevel.Verbose, "Chromecast Message payload received: %s" % message, data, prettyPrint=True)
256
+ _logsi.LogDictionary(SILevel.Verbose, "Chromecast Message payload received: %s" % message, data, prettyPrint=True, colorValue=SIColors.Tan)
248
257
 
249
258
  # message argument example: "getInfoResponse"
250
259
  # protocol_version: CASTV2_1_0
@@ -317,7 +326,7 @@ class SpotifyConnectZeroconfCastController(BaseController):
317
326
  self.zeroconfGetInfo.ResponseSource = payloadDataType
318
327
 
319
328
  # trace.
320
- _logsi.LogObject(SILevel.Verbose, "GetInformation result (ZeroconfGetInfo) - \"%s\" (%s)" % (self.zeroconfGetInfo.RemoteName, self.zeroconfGetInfo.DeviceId), self.zeroconfGetInfo, excludeNonPublic=True)
329
+ _logsi.LogObject(SILevel.Verbose, "GetInformation result (ZeroconfGetInfo) - \"%s\" (%s)" % (self.zeroconfGetInfo.RemoteName, self.zeroconfGetInfo.DeviceId), self.zeroconfGetInfo, excludeNonPublic=True, colorValue=SIColors.Tan)
321
330
 
322
331
  # getInfo response received from the initial launch.
323
332
  self.deviceId = self.zeroconfGetInfo.DeviceId
@@ -448,7 +457,7 @@ class SpotifyConnectZeroconfCastController(BaseController):
448
457
  return True
449
458
 
450
459
  # trace.
451
- _logsi.LogDictionary(SILevel.Verbose, "Chromecast Message ignored - payload type value not recognized: \"%s\"" % (payloadDataType), message, prettyPrint=True)
460
+ _logsi.LogDictionary(SILevel.Verbose, "Chromecast Message ignored - payload type value not recognized: \"%s\"" % (payloadDataType), message, prettyPrint=True, colorValue=SIColors.Tan)
452
461
 
453
462
  return True
454
463
 
@@ -463,7 +472,7 @@ class SpotifyConnectZeroconfCastController(BaseController):
463
472
  self.zeroconfResponse = response
464
473
 
465
474
  # trace.
466
- _logsi.LogException(SAAppMessages.UNHANDLED_EXCEPTION.format("receive_message", str(ex)), ex, logToSystemLogger=False)
475
+ _logsi.LogException(SAAppMessages.UNHANDLED_EXCEPTION.format("receive_message", str(ex)), ex, logToSystemLogger=False, colorValue=SIColors.Tan)
467
476
 
468
477
  # ignore exceptions, as there is nothing we can do at this point.
469
478
 
@@ -571,7 +580,7 @@ class SpotifyConnectZeroconfCastController(BaseController):
571
580
  "blob": json_resp["accessToken"],
572
581
  },
573
582
  }
574
- _logsi.LogDictionary(SILevel.Debug, "Sending Spotify Connect Zeroconf AddUser Chromecast Message payload to Chromecast device (ip=%s:%s)" % (self.castDevice.socket_client.host, self.castDevice.socket_client.port), castMsg, prettyPrint=True)
583
+ _logsi.LogDictionary(SILevel.Debug, "Sending Spotify Connect Zeroconf AddUser Chromecast Message payload to Chromecast device (ip=%s:%s)" % (self.castDevice.socket_client.host, self.castDevice.socket_client.port), castMsg, prettyPrint=True, colorValue=SIColors.Tan)
575
584
  self.send_message(castMsg)
576
585
 
577
586
  # if we are in the process of launching, then we will wait for a response in the
@@ -589,7 +598,7 @@ class SpotifyConnectZeroconfCastController(BaseController):
589
598
  if (counter >= timeout):
590
599
  raise SpotifyZeroconfApiError(0, "Timed out while waiting for a response", "AddUser", "timeout")
591
600
  counter += WAIT_INTERVAL
592
- _logsi.LogVerbose("Waiting for addUserResponse Chromecast Message payload (%f seconds from initial request)" % (counter))
601
+ _logsi.LogVerbose("Waiting for addUserResponse Chromecast Message payload (%f seconds from initial request)" % (counter), colorValue=SIColors.Tan)
593
602
 
594
603
  # if we make it here, then addUser request was processed successfully.
595
604
  return
@@ -665,7 +674,7 @@ class SpotifyConnectZeroconfCastController(BaseController):
665
674
  "interactionIDs": [self.interactionID],
666
675
  },
667
676
  }
668
- _logsi.LogDictionary(SILevel.Debug, "Sending Spotify Connect Zeroconf Getinformation Chromecast Message payload to Chromecast device (ip=%s:%s)" % (self.castDevice.socket_client.host, self.castDevice.socket_client.port), castMsg, prettyPrint=True)
677
+ _logsi.LogDictionary(SILevel.Debug, "Sending Spotify Connect Zeroconf Getinformation Chromecast Message payload to Chromecast device (ip=%s:%s)" % (self.castDevice.socket_client.host, self.castDevice.socket_client.port), castMsg, prettyPrint=True, colorValue=SIColors.Tan)
669
678
  self.send_message(castMsg)
670
679
 
671
680
  # if we are in the process of launching, then we will wait for a response in the
@@ -683,7 +692,7 @@ class SpotifyConnectZeroconfCastController(BaseController):
683
692
  if (counter >= timeout):
684
693
  raise SpotifyZeroconfApiError(0, "Timed out while waiting for a response", "GetInformation", "timeout")
685
694
  counter += WAIT_INTERVAL
686
- _logsi.LogVerbose("Waiting for getInfoResponse Chromecast Message payload (%f seconds from initial request)" % (counter))
695
+ _logsi.LogVerbose("Waiting for getInfoResponse Chromecast Message payload (%f seconds from initial request)" % (counter), colorValue=SIColors.Tan)
687
696
 
688
697
  # if we make it here, then getInfo request was processed successfully.
689
698
  # return response to the caller.
@@ -691,9 +700,29 @@ class SpotifyConnectZeroconfCastController(BaseController):
691
700
 
692
701
  except SpotifyZeroconfApiError: raise # pass handled exceptions on thru
693
702
  except Exception as ex:
703
+
704
+ # pychromecast ControllerNotRegistered can occur when launching to cast group devices
705
+ # that contain a Google Mini (legacy) device.
706
+
707
+ # indicate launch error.
708
+ self.isLaunchError = True
694
709
 
695
- # format unhandled exception.
696
- raise SpotifyApiError(SAAppMessages.UNHANDLED_EXCEPTION.format(apiMethodName, str(ex)), ex, logsi=_logsi)
710
+ # load zeroconfResponse instance with exception information.
711
+ response: ZeroconfResponse = ZeroconfResponse()
712
+ response.SpotifyError = 0
713
+ response.Status = 1001
714
+ response.StatusString = "ERROR-PYCHROMECAST-%s" % (type(ex).__name__.upper())
715
+ response.ResponseSource = "SpotifyConnectZeroconfCastController"
716
+ self.zeroconfResponse = response
717
+
718
+ # trace.
719
+ _logsi.LogException(SAAppMessages.UNHANDLED_EXCEPTION.format("GetInformation", str(ex)), ex, logToSystemLogger=False, colorValue=SIColors.Tan)
720
+
721
+ # if app is not launched, then init is waiting on the `waitAddUser` event!
722
+ if (not self.isLaunched):
723
+ self.waitAddUser.set()
724
+
725
+ # ignore exceptions, as there is nothing we can do at this point.
697
726
 
698
727
  finally:
699
728
 
@@ -1,6 +1,7 @@
1
1
  # external package imports.
2
2
  from pychromecast import CastInfo, HostServiceInfo
3
3
  from pychromecast.discovery import AbstractCastListener
4
+ import ipaddress
4
5
  import threading
5
6
  from uuid import UUID
6
7
 
@@ -145,6 +146,17 @@ class SpotifyConnectZeroconfCastListener(AbstractCastListener):
145
146
  if (not (castType in [CAST_TYPE_AUDIO, CAST_TYPE_GROUP, CAST_TYPE_CHROMECAST, CAST_TYPE_NONE])):
146
147
  _logsi.LogDebug("Chromecast device cast_type of \"%s\" is not supported; ignoring: \"%s\" (%s)" % (castType, castInfo.friendly_name, serviceName), colorValue=SIColors.Coral)
147
148
  return None
149
+
150
+ # ensure IPV4 connection - ignore if IPV6.
151
+ # Windows OS does not support dual-stack socket handling IPv4 (224.0.0.251) and IPv6 (ff02::fb).
152
+ ip = ipaddress.ip_address(castInfo.host)
153
+ if (ip.version == 6):
154
+ _logsi.LogDebug("Chromecast IPV6 device addresses are not supported; device could cause problems: \"%s\" (%s)" % (castInfo.friendly_name, serviceName), colorValue=SIColors.Red)
155
+
156
+ # will still allow this for now, but we might want to ignore IPV6 devices
157
+ # in the future! To do so, just uncomment the following, which will
158
+ # ignore the device.
159
+ #return None
148
160
 
149
161
  # create new discovery result instance.
150
162
  result:ZeroconfDiscoveryResult = ZeroconfDiscoveryResult()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: spotifywebapipython
3
- Version: 1.0.259
3
+ Version: 1.0.260
4
4
  Summary: Spotify Web API Python3 Library
5
5
  Author: Todd Lucas
6
6
  Author-email: <thlucas@yahoo.com>
@@ -1,33 +1,33 @@
1
1
  spotifywebapipython/__init__.py,sha256=SnB5BsUGChYgcZHjhZenqYZkb_v3c8aiAUQLkp4lYSY,1205
2
- spotifywebapipython/const.py,sha256=0YI_lNUwP9HCg2DaUBoaGE4sI23jndwE4Fgt1n4nu08,3923
2
+ spotifywebapipython/const.py,sha256=dPlADutAwzwr1W48eve-rJYssT_k9QW3-SDgFCD7yQI,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=ie83oTfHKtUivpDtdcqfuXhL3PtnP7deCzEOwEyHOkM,854614
8
+ spotifywebapipython/spotifyclient.py,sha256=nXBDydPqrL_rthC-fMltJSkhmRZtEP6ZjlEKiFE76Sc,855392
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=SRw9Wu464DSwi4FpGgij8N1FkLD-X0A9-dQynjky0wc,182077
14
+ spotifywebapipython/docs/__init__.html,sha256=V9LJRIEPKyCDGD6yrtqualGwdb6oBUrCOwBoNsacjwU,182786
15
15
  spotifywebapipython/docs/codecopy.js,sha256=ryuoZwLIL03YitjjFzn49UO5ta7-OBos6LNA3qHhFzs,3120
16
- spotifywebapipython/docs/index.html,sha256=muN9jvVqzas09f7OtPNi2jOG4k0HqxrxBOY1Rc839ZY,48523
17
- spotifywebapipython/docs/search.js,sha256=UQH4AS6wKeDmJgou3Uip8Q7bJty08qKbtPN0_ZxFbgs,8957158
16
+ spotifywebapipython/docs/index.html,sha256=bJ9plZVboNCcTxQti-pm9KELqcE1irptD6BdNrgWrSs,48523
17
+ spotifywebapipython/docs/search.js,sha256=3flBLbX5Qh_33jzLO1_74QhiuWA_cFEy5FUa-aH9BJA,8968623
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=H1ESteNi_l_qJtve9dN5pbOnsg0fQud0GGNvdZLsH_Y,59805
21
- spotifywebapipython/docs/spotifywebapipython/saappmessages.html,sha256=uxYYIvbq31bNTdOShX1PS8vAEAIAJS3s6GTHhTvvAvA,60895
22
- spotifywebapipython/docs/spotifywebapipython/sautils.html,sha256=Mw-RuQKXeNhky-70KCoBRc6h-5w4TiAbiycfvKx-O1k,61063
23
- spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html,sha256=MP8xCIGeU0e5ttLVJRajDEgh7UXmTZACM80EZDuaQqE,48054
24
- spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html,sha256=Ooc-bC2mUF2S3XN1l-XMUrkHTGu6rOZC3bA9EDqSrzY,59210
25
- spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html,sha256=Vl1sVWfmBmBwST95AEkXqwNy7ccfHckjRKzird_i7nQ,59256
26
- spotifywebapipython/docs/spotifywebapipython/spotifyclient.html,sha256=N4zAfQnlGvSWGXeh1YmbAvAfA7PW_WX1NyQgWhdHzO0,1635516
27
- spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html,sha256=83Dn-hffl6g2qlkfzKMWeDCDcdlvWB_q1jmeQb-IzTg,57662
28
- spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html,sha256=fMFFa_W_RaE94iXSEnbxdWRSr0uTqk-2_xZNaHfps44,52174
29
- spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html,sha256=f400sWbPykAct6zGHKDXby1WqPT1VxTg7xDzemF_a3Q,50592
30
- spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html,sha256=Gzi2Dy5kHkdIEHCcCccb5orJJyeu-SrM2-TAl2-TgPY,62204
20
+ spotifywebapipython/docs/spotifywebapipython/const.html,sha256=0zD6doIloAVHiXCiH1tNrrvmH6_5l1rG7jqEfeLVH5A,59805
21
+ spotifywebapipython/docs/spotifywebapipython/saappmessages.html,sha256=hRgIlY-dQlbh03CRPt7d2bKFy2cizeH1TT2tJcBVKm8,60895
22
+ spotifywebapipython/docs/spotifywebapipython/sautils.html,sha256=LFTzn2nMh23d2imZMU4_kKg9G268Ue908oWqKi0C-Uk,61063
23
+ spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html,sha256=SsbfaW3myrDY1QTL_bp6VC17Qnonor1RzXHjqquT8iM,48054
24
+ spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html,sha256=X94qxMzwmUEGLlVvQnDQI_RgZDQLSjNOImCalXR1YUg,59210
25
+ spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html,sha256=RPvaLZeH1xvOsw2w5VNd1k2Pz-HNT5Dj3rQLiJ-mvo0,59256
26
+ spotifywebapipython/docs/spotifywebapipython/spotifyclient.html,sha256=FD81Ab9URK9J_J-5MquUqSkLKpDM3KUNYJZk5p-mDLk,1635516
27
+ spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html,sha256=it_UvMCdNYyZnHYBXlW8WiZLmjXLnX7zLW3lU2fTI8c,57662
28
+ spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html,sha256=RPUGFLn_sz2VplJJ4_dPXOvtotcIg4Thz3ZaPdhZ_BE,52174
29
+ spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html,sha256=OT-IR5e6d3AmXaoY9qO5WZ0pBcRRV5cFpO4SXPhU-gE,50592
30
+ spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html,sha256=3PR0j23h_cxa3jxyEU6P3O5WcQE4ztOOhFD6RSZoo78,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
@@ -101,16 +101,16 @@ spotifywebapipython/models/tracksaved.py,sha256=uwnTpawf7ymXlF_b4p1RyjonUwUFRp0q
101
101
  spotifywebapipython/models/tracksimplified.py,sha256=fqIH45BsTRPbwq0ytss3r9YTCn1TtJSwBLAelJ2dWJY,13199
102
102
  spotifywebapipython/models/userprofile.py,sha256=VXHP-wSWGSIiDebGDuT4fFNBCmx_ME6Hn1NO5QyyBQY,6482
103
103
  spotifywebapipython/models/userprofilesimplified.py,sha256=YCEVED8PMeqWkORMHwj0JF_tVNqoTc1k_nce63D6kFY,6919
104
- spotifywebapipython/models/zeroconfdiscoveryresult.py,sha256=5MPSu7pLLh5SBrm7N6UbJ9K2zCNszBQr1CKUArmdk08,20245
104
+ spotifywebapipython/models/zeroconfdiscoveryresult.py,sha256=XID2qmaK2WTGJoLTQ54aQjfutLJMLgJ7A1ATwAp06kY,20250
105
105
  spotifywebapipython/models/zeroconfproperty.py,sha256=sXGUqbHhFMutCNKFJwJKbNbbQAnBnR7Ob5wNDSePxZk,2141
106
106
  spotifywebapipython/oauthcli/__init__.py,sha256=K37XTxYAKT0n8otCNzWbjgJ10fAPN4WL6seEpwvWyo4,168
107
107
  spotifywebapipython/oauthcli/authclient.py,sha256=-B_av5cxVHGHOaf8F_Xeo5u-HbOI1ytN86nOBzfW4Sw,56026
108
108
  spotifywebapipython/spotifyconnect/__init__.py,sha256=9Xl5KiJFvWLbsdb4YQ0xmF67i36ybpXCCXrWeNsKEvc,1108
109
109
  spotifywebapipython/spotifyconnect/spotifyconnectdeviceeventargs.py,sha256=35hKa0FAaPgy7W8D6MFXmga667pjwXITo8jSj1TDfE8,1988
110
- spotifywebapipython/spotifyconnect/spotifyconnectdirectorytask.py,sha256=oMuH0jxaAaR_1XOlTT7FNvnGSTHgLXdOej_6RhzqW3o,149143
111
- spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastapptask.py,sha256=zdr09TE_Fzssn4GXaYeQNMvXGaMhTvb-P11psniM5vU,22939
112
- spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastcontroller.py,sha256=mQ7wyrq6f76vpcebudYKv3aFW9YYBIY3C0CGGFSR4yU,32490
113
- spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastlistener.py,sha256=DCSPmbKPUqKlKpSMvujWBHHKbntXT7_9QkKBgymuTOs,15928
110
+ spotifywebapipython/spotifyconnect/spotifyconnectdirectorytask.py,sha256=QXNpJSqUGuOYxCzvDH63Ka9L9Yo7Bb5iVBRtDhc4ILE,153923
111
+ spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastapptask.py,sha256=tCjqU7ubtfzBENdvqwVB0pMDGHRY_0u6N5OYlI5hbj8,23368
112
+ spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastcontroller.py,sha256=e2wLmFq4393IdVa51w8X5UQl4KfnHRh34DMlxZfl9-g,34218
113
+ spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastlistener.py,sha256=zo0z0edxBwFZxN53su2yRI97krFilIlODPlz4VRyL6s,16645
114
114
  spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastmultizonecontrollerlistener.py,sha256=AA-XxS6AptJWzyO2zsM9DA5ioCncJBKDTpJkr_aN9IM,12352
115
115
  spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastmultizonemanagerlistener.py,sha256=k3wMC80Z7jBXYwiw9jq-oixRsum7E_vdHzwEgvcGbiw,18918
116
116
  spotifywebapipython/spotifyconnect/spotifyconnectzeroconfexceptions.py,sha256=aesGauxMoKupdTPR5rL2-rXBC3SEvH_9bQQx2Vh-abs,524
@@ -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.259.dist-info/LICENSE,sha256=KGcc9g0zwqNLcWnSn_ezv1UtKyhMENFhvtixpxUPNsE,1177
138
- spotifywebapipython-1.0.259.dist-info/METADATA,sha256=Qsk1nozOWCSR2MiL1eh3OCuLLppVt83QMyLRyTUsUzA,11644
139
- spotifywebapipython-1.0.259.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
140
- spotifywebapipython-1.0.259.dist-info/top_level.txt,sha256=jTBLFlijKTesYh2dteAz4vb17qjaqWKeDjpnnwTcrjs,20
141
- spotifywebapipython-1.0.259.dist-info/RECORD,,
137
+ spotifywebapipython-1.0.260.dist-info/LICENSE,sha256=KGcc9g0zwqNLcWnSn_ezv1UtKyhMENFhvtixpxUPNsE,1177
138
+ spotifywebapipython-1.0.260.dist-info/METADATA,sha256=9GnaRQaJXe9zHzEhRFL88XXiFzkWmPSOC6qrDrNRIec,11644
139
+ spotifywebapipython-1.0.260.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
140
+ spotifywebapipython-1.0.260.dist-info/top_level.txt,sha256=jTBLFlijKTesYh2dteAz4vb17qjaqWKeDjpnnwTcrjs,20
141
+ spotifywebapipython-1.0.260.dist-info/RECORD,,