mirror of
https://github.com/spotipy-dev/spotipy.git
synced 2026-06-19 09:13:53 +00:00
Prompt option to always show a dialog when giving permissions to Spotify (#438)
* Add show_dialog option to prompt_for_user_token() * Adjust test_get_authorize_url_shows_dialog_when_requested
This commit is contained in:
parent
4515446a65
commit
04bdd27d85
@ -156,6 +156,7 @@ class SpotifyOAuth(SpotifyAuthBase):
|
|||||||
cache_path=None,
|
cache_path=None,
|
||||||
username=None,
|
username=None,
|
||||||
proxies=None,
|
proxies=None,
|
||||||
|
show_dialog=False
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Creates a SpotifyOAuth object
|
Creates a SpotifyOAuth object
|
||||||
@ -180,6 +181,7 @@ class SpotifyOAuth(SpotifyAuthBase):
|
|||||||
)
|
)
|
||||||
self.scope = self._normalize_scope(scope)
|
self.scope = self._normalize_scope(scope)
|
||||||
self.proxies = proxies
|
self.proxies = proxies
|
||||||
|
self.show_dialog = show_dialog
|
||||||
|
|
||||||
def get_cached_token(self):
|
def get_cached_token(self):
|
||||||
""" Gets a cached auth token
|
""" Gets a cached auth token
|
||||||
@ -235,7 +237,7 @@ class SpotifyOAuth(SpotifyAuthBase):
|
|||||||
def is_token_expired(self, token_info):
|
def is_token_expired(self, token_info):
|
||||||
return is_token_expired(token_info)
|
return is_token_expired(token_info)
|
||||||
|
|
||||||
def get_authorize_url(self, state=None, show_dialog=False):
|
def get_authorize_url(self, state=None):
|
||||||
""" Gets the URL to use to authorize this app
|
""" Gets the URL to use to authorize this app
|
||||||
"""
|
"""
|
||||||
payload = {
|
payload = {
|
||||||
@ -249,7 +251,7 @@ class SpotifyOAuth(SpotifyAuthBase):
|
|||||||
state = self.state
|
state = self.state
|
||||||
if state is not None:
|
if state is not None:
|
||||||
payload["state"] = state
|
payload["state"] = state
|
||||||
if show_dialog:
|
if self.show_dialog:
|
||||||
payload["show_dialog"] = True
|
payload["show_dialog"] = True
|
||||||
|
|
||||||
urlparams = urllibparse.urlencode(payload)
|
urlparams = urllibparse.urlencode(payload)
|
||||||
|
|||||||
@ -26,6 +26,7 @@ def prompt_for_user_token(
|
|||||||
redirect_uri=None,
|
redirect_uri=None,
|
||||||
cache_path=None,
|
cache_path=None,
|
||||||
oauth_manager=None,
|
oauth_manager=None,
|
||||||
|
show_dialog=False
|
||||||
):
|
):
|
||||||
""" prompts the user to login if necessary and returns
|
""" prompts the user to login if necessary and returns
|
||||||
the user token suitable for use with the spotipy.Spotify
|
the user token suitable for use with the spotipy.Spotify
|
||||||
@ -76,6 +77,7 @@ def prompt_for_user_token(
|
|||||||
redirect_uri,
|
redirect_uri,
|
||||||
scope=scope,
|
scope=scope,
|
||||||
cache_path=cache_path,
|
cache_path=cache_path,
|
||||||
|
show_dialog=show_dialog
|
||||||
)
|
)
|
||||||
|
|
||||||
# try to get a valid token for this user, from the cache,
|
# try to get a valid token for this user, from the cache,
|
||||||
|
|||||||
@ -159,9 +159,9 @@ class TestSpotifyOAuth(unittest.TestCase):
|
|||||||
self.assertNotIn('show_dialog', parsed_qs)
|
self.assertNotIn('show_dialog', parsed_qs)
|
||||||
|
|
||||||
def test_get_authorize_url_shows_dialog_when_requested(self):
|
def test_get_authorize_url_shows_dialog_when_requested(self):
|
||||||
oauth = SpotifyOAuth("CLID", "CLISEC", "REDIR")
|
oauth = SpotifyOAuth("CLID", "CLISEC", "REDIR", show_dialog=True)
|
||||||
|
|
||||||
url = oauth.get_authorize_url(show_dialog=True)
|
url = oauth.get_authorize_url()
|
||||||
|
|
||||||
parsed_url = urllibparse.urlparse(url)
|
parsed_url = urllibparse.urlparse(url)
|
||||||
parsed_qs = urllibparse.parse_qs(parsed_url.query)
|
parsed_qs = urllibparse.parse_qs(parsed_url.query)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user