Private GIT

Skip to content
Snippets Groups Projects
Commit 15a76f27 authored by Dustyn Gibson's avatar Dustyn Gibson
Browse files

Don't raise exception when no token set or server unavailable

Fix Out of order arguments when retrying traktRequest on codes 401, 502
Persist session in the object instance, supply cacert path as verify= instead of True when not disable_ssl_verify
@fernandog can you test this please?
parent c31ba033
No related branches found
No related tags found
No related merge requests found
from lib import requests import requests
import certifi
import json import json
import sickbeard import sickbeard
import time import time
...@@ -8,7 +9,8 @@ from exceptions import traktException, traktAuthException, traktServerBusy ...@@ -8,7 +9,8 @@ from exceptions import traktException, traktAuthException, traktServerBusy
class TraktAPI(): class TraktAPI():
def __init__(self, disable_ssl_verify=False, timeout=30): def __init__(self, disable_ssl_verify=False, timeout=30):
self.verify = not disable_ssl_verify self.session = requests.Session()
self.verify = certifi.where() if not disable_ssl_verify else False
self.timeout = timeout if timeout else None self.timeout = timeout if timeout else None
self.auth_url = sickbeard.TRAKT_OAUTH_URL self.auth_url = sickbeard.TRAKT_OAUTH_URL
self.api_url = sickbeard.TRAKT_API_URL self.api_url = sickbeard.TRAKT_API_URL
...@@ -65,9 +67,7 @@ class TraktAPI(): ...@@ -65,9 +67,7 @@ class TraktAPI():
def traktRequest(self, path, data=None, headers=None, url=None, method='GET', count=0): def traktRequest(self, path, data=None, headers=None, url=None, method='GET', count=0):
if None == url: if None == url:
url = self.api_url + path url = self.api_url
else:
url = url + path
count = count + 1 count = count + 1
...@@ -76,12 +76,12 @@ class TraktAPI(): ...@@ -76,12 +76,12 @@ class TraktAPI():
if None == sickbeard.TRAKT_ACCESS_TOKEN: if None == sickbeard.TRAKT_ACCESS_TOKEN:
logger.log(u'You must get a Trakt TOKEN. Check your Trakt settings', logger.WARNING) logger.log(u'You must get a Trakt TOKEN. Check your Trakt settings', logger.WARNING)
raise traktAuthException(e) return {}
headers['Authorization'] = 'Bearer ' + sickbeard.TRAKT_ACCESS_TOKEN headers['Authorization'] = 'Bearer ' + sickbeard.TRAKT_ACCESS_TOKEN
try: try:
resp = requests.request(method, url, headers=headers, timeout=self.timeout, resp = session.request(method, url + path, headers=headers, timeout=self.timeout,
data=json.dumps(data) if data else [], verify=self.verify) data=json.dumps(data) if data else [], verify=self.verify)
# check for http errors and raise if any are present # check for http errors and raise if any are present
...@@ -98,16 +98,16 @@ class TraktAPI(): ...@@ -98,16 +98,16 @@ class TraktAPI():
elif code == 502: elif code == 502:
# Retry the request, cloudflare had a proxying issue # Retry the request, cloudflare had a proxying issue
logger.log(u'Retrying trakt api request: %s' % path, logger.WARNING) logger.log(u'Retrying trakt api request: %s' % path, logger.WARNING)
return self.traktRequest(path, data, headers, method) return self.traktRequest(path, data, headers, url, method)
elif code == 401: elif code == 401:
logger.log(u'Unauthorized. Please check your Trakt settings', logger.WARNING) logger.log(u'Unauthorized. Please check your Trakt settings', logger.WARNING)
if self.traktToken(refresh=True, count=count): if self.traktToken(refresh=True, count=count):
return self.traktRequest(path, data, url, method) return self.traktRequest(path, data, headers, url, method)
raise traktAuthException(e) raise traktAuthException(e)
elif code in (500,501,503,504,520,521,522): elif code in (500,501,503,504,520,521,522):
#http://docs.trakt.apiary.io/#introduction/status-codes #http://docs.trakt.apiary.io/#introduction/status-codes
logger.log(u'Trakt may have some issues and it\'s unavailable. Try again later please', logger.WARNING) logger.log(u'Trakt may have some issues and it\'s unavailable. Try again later please', logger.WARNING)
raise traktServerBusy(e) return {}
else: else:
raise traktException(e) raise traktException(e)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment