Fix downloadutils revert

This commit is contained in:
angelblue05 2018-06-11 01:11:44 -05:00
parent 12f0c12dd7
commit e1c046f218

View file

@ -23,6 +23,11 @@ log = logging.getLogger("EMBY."+__name__)
##################################################################################################
class HTTPException(Exception):
# Emby HTTP exception
def __init__(self, status):
self.status = status
class DownloadUtils(object):
@ -112,18 +117,18 @@ class DownloadUtils(object):
)
}
self.downloadUrl(url, postBody=data, action_type="POST")
log.debug("Posted capabilities to %s", self.session['Server'])
# Attempt at getting sessionId
url = "{server}/emby/Sessions?DeviceId=%s&format=json" % device_id
try:
self.downloadUrl(url, postBody=data, action_type="POST")
log.debug("Posted capabilities to %s", self.session['Server'])
# Attempt at getting sessionId
url = "{server}/emby/Sessions?DeviceId=%s&format=json" % device_id
result = self.downloadUrl(url)
session_id = result[0]['Id']
except Exception as error:
log.error("Failed to retrieve the session id: " + str(error))
return False
else:
log.info("SessionId: %s", session_id)
@ -153,6 +158,8 @@ class DownloadUtils(object):
% (session_id, user_id))
self.downloadUrl(url, postBody={}, action_type="POST")
return True
def start_session(self):
# User is identified from this point
# Attach authenticated header to the session
@ -160,8 +167,8 @@ class DownloadUtils(object):
session.headers = self.get_header()
session.verify = self.session['SSL']
# Retry connections to the server
session.mount("http://", requests.adapters.HTTPAdapter(max_retries=1))
session.mount("https://", requests.adapters.HTTPAdapter(max_retries=1))
session.mount("http://", requests.adapters.HTTPAdapter(max_retries=3))
session.mount("https://", requests.adapters.HTTPAdapter(max_retries=3))
self.session_requests = session
log.info("requests session started on: %s", self.session['Server'])
@ -227,9 +234,7 @@ class DownloadUtils(object):
if requires_server and (not server or not server.get("Server") or not server.get("UserId")):
log.info("Aborting download, Server Details Error: %s url=%s" % (server, url))
exc = Exception("Aborting download, Server Details Error: %s url=%s" % (server, url))
exc.quiet = True
raise exc
raise Exception("Aborting download, Server Details Error: %s url=%s" % (server, url))
if server_id is None and self.session_requests is not None: # Main server
session = self.session_requests
@ -247,9 +252,7 @@ class DownloadUtils(object):
# does the URL look ok
if url.startswith('/'):
exc = Exception("URL Error: " + url)
exc.quiet = True
raise exc
raise Exception("URL Error: " + url)
##### PREPARE REQUEST #####
kwargs.update({
@ -263,6 +266,8 @@ class DownloadUtils(object):
log.debug(kwargs)
response = self._requests(action_type, session, **kwargs)
#response = requests.get('http://httpbin.org/status/400')
if window('emby_test') == "false":
raise requests.exceptions.ConnectionError
if response.status_code == 204:
# No body in the response
@ -288,28 +293,20 @@ class DownloadUtils(object):
##### EXCEPTIONS #####
except requests.exceptions.SSLError as error:
log.error("Invalid SSL certificate for: %s", url)
error.quiet = True
raise
except requests.exceptions.ConnectTimeout as error:
log.error("ConnectTimeout at: %s", url)
error.quiet = True
raise
except requests.exceptions.ReadTimeout as error:
log.error("ReadTimeout at: %s", url)
error.quiet = True
raise
except requests.exceptions.ConnectionError as error:
# Make the addon aware of status
window('emby_test', value="true")
if window('emby_online') != "false":
log.error("Server unreachable at: %s", url)
window('emby_online', value="false")
error.quiet = True
raise
raise HTTPException(None)
except requests.exceptions.ReadTimeout as error:
log.error("ReadTimeout at: %s", url)
raise HTTPException(None)
except requests.exceptions.HTTPError as error:
@ -336,13 +333,10 @@ class DownloadUtils(object):
message="Unauthorized.",
icon=xbmcgui.NOTIFICATION_ERROR)
error.quiet = True
raise
raise HTTPException(response.status_code)
# if we got to here and did not process the download for some reason then that is bad
exc = Exception("Unhandled Download : %s", url)
#exc.quiet = True
raise exc
raise Exception("Unhandled Download : %s", url)
def _ensure_server(self, server_id=None):
@ -365,7 +359,7 @@ class DownloadUtils(object):
'UserId': "",
'Server': "",
'Token': "",
'SSL': False
'SSL': True
}
if server_id is None: # Main server
@ -388,4 +382,4 @@ class DownloadUtils(object):
elif action == "DELETE":
response = session.delete(**kwargs)
return response
return response