Skip to content

Commit

Permalink
OAuth: optimize get_access_token and code style updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Taapat committed Jun 12, 2024
1 parent 9aed165 commit f0c008e
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 25 deletions.
46 changes: 24 additions & 22 deletions src/OAuth.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,33 +76,35 @@ def get_oauth_response(self, url, data):

def get_user_code(self): # pragma: no cover
url = 'https://accounts.google.com/o/oauth2/device/code'
data = {'client_id': CLIENT_ID,
'scope': 'https://www.googleapis.com/auth/youtube'}
data = self.get_oauth_response(url, data)
self.device_code = data.get('device_code', '')
self.retry_interval = data.get('interval', 2)
return str(data.get('verification_url', '')), str(data.get('user_code', ''))
data = {
'client_id': CLIENT_ID,
'scope': 'https://www.googleapis.com/auth/youtube'
}
res = self.get_oauth_response(url, data)
self.device_code = res.get('device_code', '')
self.retry_interval = res.get('interval', 2)
return str(res.get('verification_url', '')), str(res.get('user_code', ''))

def get_new_token(self): # pragma: no cover
url = 'https://accounts.google.com/o/oauth2/token'
data = {'client_id': CLIENT_ID,
'client_secret': CLIENT_SECRET,
'code': self.device_code,
'grant_type': 'http://oauth.net/grant_type/device/1.0'}
data = self.get_oauth_response(url, data)
if 'access_token' in data and 'refresh_token' in data:
return data['refresh_token'], 1
data = {
'client_id': CLIENT_ID,
'client_secret': CLIENT_SECRET,
'code': self.device_code,
'grant_type': 'http://oauth.net/grant_type/device/1.0'
}
res = self.get_oauth_response(url, data)
if 'access_token' in res and 'refresh_token' in res:
return res['refresh_token'], 1
return None, self.retry_interval + 2

def get_access_token(self, refresh_token):
url = 'https://accounts.google.com/o/oauth2/token'
data = {'client_id': CLIENT_ID,
'client_secret': CLIENT_SECRET,
'refresh_token': refresh_token,
'grant_type': 'refresh_token'}
data = {
'client_id': CLIENT_ID,
'client_secret': CLIENT_SECRET,
'refresh_token': refresh_token,
'grant_type': 'refresh_token'
}
res = self.get_oauth_response(url, data)
if 'access_token' in res:
yt_auth = '%s %s' % (res['token_type'], res['access_token']) if 'token_type' in res else None
return res['access_token'], yt_auth
print('[OAuth] Error in get access token')
return None, None
return res.get('access_token'), res.get('token_type')
7 changes: 4 additions & 3 deletions src/YouTubeApi.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,21 @@ def __init__(self, refresh_token):
self.renew_access_token()
else:
self.access_token = None
self.yt_auth = None
self.token_type = None
self.key = '&key=%s' % API_KEY

def renew_access_token(self):
self.key = '&key=%s' % API_KEY
self.access_token, self.yt_auth = OAuth().get_access_token(self.refresh_token)
self.access_token, self.token_type = OAuth().get_access_token(self.refresh_token)
if self.access_token:
self.key += '&access_token=%s' % self.access_token

def is_auth(self):
return bool(self.access_token)

def get_yt_auth(self):
return self.yt_auth
if self.token_type and self.access_token:
return '%s %s' % (self.token_type, self.access_token)

def try_response(self, url_or_request, renew=True):
response = {}
Expand Down

0 comments on commit f0c008e

Please sign in to comment.