|
1 | 1 | # -*- encoding: utf-8 -*- |
2 | 2 |
|
3 | | -from twitch import CLIENT_ID, CLIENT_SECRET |
| 3 | +from twitch import CLIENT_ID, CLIENT_SECRET, methods |
| 4 | +from twitch.queries import OAuthQuery as Qry |
| 5 | +from twitch.queries import query |
4 | 6 |
|
5 | 7 | from six.moves.urllib_parse import urlsplit, urlencode |
6 | 8 |
|
7 | 9 |
|
8 | 10 | class MobileClient: |
9 | | - _base_url = 'https://api.twitch.tv/kraken/oauth2/{0}' |
10 | | - |
11 | 11 | def __init__(self, client_id='', client_secret=''): |
12 | 12 | self.client_id = client_id if client_id else CLIENT_ID |
13 | 13 | self.client_secret = client_secret if client_secret else CLIENT_SECRET |
14 | 14 |
|
15 | 15 | def prepare_request_uri(self, redirect_uri='http://localhost:3000/', scope=list(), force_verify=False, state=''): |
16 | | - params = {'response_type': 'token', |
17 | | - 'client_id': self.client_id, |
18 | | - 'redirect_uri': redirect_uri, |
19 | | - 'scope': ' '.join(scope), |
20 | | - 'force_verify': str(force_verify).lower(), |
21 | | - 'state': state} |
22 | | - params = urlencode(params) |
23 | | - url = '{base_uri}?{params}'.format(base_uri=self._base_url.format('authorize'), params=params) |
24 | | - return url |
| 16 | + q = Qry('authorize') |
| 17 | + q.add_param('response_type', 'token') |
| 18 | + q.add_param('client_id', self.client_id) |
| 19 | + q.add_param('redirect_uri', redirect_uri) |
| 20 | + q.add_param('scope', ' '.join(scope)) |
| 21 | + q.add_param('force_verify', str(force_verify).lower()) |
| 22 | + q.add_param('state', state) |
| 23 | + return '?'.join([q.url, urlencode(q.params)]) |
25 | 24 |
|
26 | 25 | 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 |
| 26 | + q = Qry('token') |
| 27 | + q.add_param('client_id', self.client_id) |
| 28 | + q.add_param('client_secret', self.client_secret) |
| 29 | + q.add_param('grant_type', 'client_credentials') |
| 30 | + q.add_param('scope', ' '.join(scope)) |
| 31 | + return '?'.join([q.url, urlencode(q.params)]) |
33 | 32 |
|
34 | 33 | 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) |
39 | | - return url |
| 34 | + q = Qry('revoke') |
| 35 | + q.add_param('client_id', self.client_id) |
| 36 | + q.add_param('token', token) |
| 37 | + return '?'.join([q.url, urlencode(q.params)]) |
| 38 | + |
| 39 | + @query |
| 40 | + def revoke_token(self, token): |
| 41 | + q = Qry('revoke', method=methods.POST) |
| 42 | + q.add_param('client_id', self.client_id) |
| 43 | + q.add_param('token', token) |
| 44 | + return q |
| 45 | + |
| 46 | + @query |
| 47 | + def get_app_access_token(self, scope=list()): |
| 48 | + q = Qry('token', method=methods.POST) |
| 49 | + q.add_param('client_id', self.client_id) |
| 50 | + q.add_param('client_secret', self.client_secret) |
| 51 | + q.add_param('grant_type', 'client_credentials') |
| 52 | + q.add_param('scope', ' '.join(scope)) |
| 53 | + return q |
40 | 54 |
|
41 | 55 | @staticmethod |
42 | 56 | def parse_implicit_response(url): |
|
0 commit comments