Private GIT

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

Merge branch 'trakt-exception' into develop

parents 096c6752 4311ff46
Branches
Tags
No related merge requests found
from lib import requests
import requests
import certifi
import json
import sickbeard
import time
......@@ -8,7 +9,8 @@ from exceptions import traktException, traktAuthException, traktServerBusy
class TraktAPI():
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.auth_url = sickbeard.TRAKT_OAUTH_URL
self.api_url = sickbeard.TRAKT_API_URL
......@@ -65,9 +67,7 @@ class TraktAPI():
def traktRequest(self, path, data=None, headers=None, url=None, method='GET', count=0):
if None == url:
url = self.api_url + path
else:
url = url + path
url = self.api_url
count = count + 1
......@@ -76,12 +76,12 @@ class TraktAPI():
if None == sickbeard.TRAKT_ACCESS_TOKEN:
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
try:
resp = requests.request(method, url, headers=headers, timeout=self.timeout,
resp = self.session.request(method, url + path, headers=headers, timeout=self.timeout,
data=json.dumps(data) if data else [], verify=self.verify)
# check for http errors and raise if any are present
......@@ -98,16 +98,16 @@ class TraktAPI():
elif code == 502:
# Retry the request, cloudflare had a proxying issue
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:
logger.log(u'Unauthorized. Please check your Trakt settings', logger.WARNING)
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)
elif code in (500,501,503,504,520,521,522):
#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)
raise traktServerBusy(e)
return {}
else:
raise traktException(e)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment