11# -*- encoding: utf-8 -*-
22
3- from twitch import CLIENT_ID
4- from twitch import scopes
3+ from twitch import CLIENT_ID , CLIENT_SECRET
4+
55from six .moves .urllib_parse import urlsplit , urlencode
66
77
88class MobileClient :
9- _auth_base_url = 'https://api.twitch.tv/kraken/oauth2/authorize '
9+ _base_url = 'https://api.twitch.tv/kraken/oauth2/{0} '
1010
11- def __init__ (self , client_id = '' ):
11+ def __init__ (self , client_id = '' , client_secret = '' ):
1212 self .client_id = client_id if client_id else CLIENT_ID
13+ self .client_secret = client_secret if client_secret else CLIENT_SECRET
1314
1415 def prepare_request_uri (self , redirect_uri = 'http://localhost:3000/' , scope = list (), force_verify = False , state = '' ):
1516 params = {'response_type' : 'token' ,
@@ -19,7 +20,22 @@ def prepare_request_uri(self, redirect_uri='http://localhost:3000/', scope=list(
1920 'force_verify' : str (force_verify ).lower (),
2021 'state' : state }
2122 params = urlencode (params )
22- url = '{base_uri}?{params}' .format (base_uri = self ._auth_base_url , params = params )
23+ url = '{base_uri}?{params}' .format (base_uri = self ._base_url .format ('authorize' ), params = params )
24+ return url
25+
26+ def prepare_token_uri (self , scope = list ()):
27+ params = {'client_id' : self .client_id ,
28+ 'client_secret' : self .client_secret ,
29+ 'scope' : ' ' .join (scope )}
30+ params = urlencode (params )
31+ url = '{base_uri}?{params}' .format (base_uri = self ._base_url .format ('token' ), params = params )
32+ return url
33+
34+ def prepare_revoke_uri (self , token ):
35+ params = {'client_id' : self .client_id ,
36+ 'token' : token }
37+ params = urlencode (params )
38+ url = '{base_uri}?{params}' .format (base_uri = self ._base_url .format ('revoke' ), params = params )
2339 return url
2440
2541 @staticmethod
0 commit comments