mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-04 18:33:38 +00:00
0d9fbc1ad7
This version of SickBeard uses both TVDB and TVRage to search and gather it's series data from allowing you to now have access to and download shows that you couldn't before because of being locked into only what TheTVDB had to offer. Also this edition is based off the code we used in our XEM editon so it does come with scene numbering support as well as all the other features our XEM edition has to offer. Please before using this with your existing database (sickbeard.db) please make a backup copy of it and delete any other database files such as cache.db and failed.db if present, we HIGHLY recommend starting out with no database files at all to make this a fresh start but the choice is at your own risk! Enjoy!
121 lines
3.2 KiB
Python
121 lines
3.2 KiB
Python
# urllib3/exceptions.py
|
|
# Copyright 2008-2013 Andrey Petrov and contributors (see CONTRIBUTORS.txt)
|
|
#
|
|
# This module is part of urllib3 and is released under
|
|
# the MIT License: http://www.opensource.org/licenses/mit-license.php
|
|
|
|
|
|
## Base Exceptions
|
|
|
|
class HTTPError(Exception):
|
|
"Base exception used by this module."
|
|
pass
|
|
|
|
|
|
class PoolError(HTTPError):
|
|
"Base exception for errors caused within a pool."
|
|
def __init__(self, pool, message):
|
|
self.pool = pool
|
|
HTTPError.__init__(self, "%s: %s" % (pool, message))
|
|
|
|
def __reduce__(self):
|
|
# For pickling purposes.
|
|
return self.__class__, (None, None)
|
|
|
|
|
|
class RequestError(PoolError):
|
|
"Base exception for PoolErrors that have associated URLs."
|
|
def __init__(self, pool, url, message):
|
|
self.url = url
|
|
PoolError.__init__(self, pool, message)
|
|
|
|
def __reduce__(self):
|
|
# For pickling purposes.
|
|
return self.__class__, (None, self.url, None)
|
|
|
|
|
|
class SSLError(HTTPError):
|
|
"Raised when SSL certificate fails in an HTTPS connection."
|
|
pass
|
|
|
|
|
|
class ProxyError(HTTPError):
|
|
"Raised when the connection to a proxy fails."
|
|
pass
|
|
|
|
|
|
class DecodeError(HTTPError):
|
|
"Raised when automatic decoding based on Content-Type fails."
|
|
pass
|
|
|
|
|
|
## Leaf Exceptions
|
|
|
|
class MaxRetryError(RequestError):
|
|
"Raised when the maximum number of retries is exceeded."
|
|
|
|
def __init__(self, pool, url, reason=None):
|
|
self.reason = reason
|
|
|
|
message = "Max retries exceeded with url: %s" % url
|
|
if reason:
|
|
message += " (Caused by %s: %s)" % (type(reason), reason)
|
|
else:
|
|
message += " (Caused by redirect)"
|
|
|
|
RequestError.__init__(self, pool, url, message)
|
|
|
|
|
|
class HostChangedError(RequestError):
|
|
"Raised when an existing pool gets a request for a foreign host."
|
|
|
|
def __init__(self, pool, url, retries=3):
|
|
message = "Tried to open a foreign host with url: %s" % url
|
|
RequestError.__init__(self, pool, url, message)
|
|
self.retries = retries
|
|
|
|
|
|
class TimeoutStateError(HTTPError):
|
|
""" Raised when passing an invalid state to a timeout """
|
|
pass
|
|
|
|
|
|
class TimeoutError(HTTPError):
|
|
""" Raised when a socket timeout error occurs.
|
|
|
|
Catching this error will catch both :exc:`ReadTimeoutErrors
|
|
<ReadTimeoutError>` and :exc:`ConnectTimeoutErrors <ConnectTimeoutError>`.
|
|
"""
|
|
pass
|
|
|
|
|
|
class ReadTimeoutError(TimeoutError, RequestError):
|
|
"Raised when a socket timeout occurs while receiving data from a server"
|
|
pass
|
|
|
|
|
|
# This timeout error does not have a URL attached and needs to inherit from the
|
|
# base HTTPError
|
|
class ConnectTimeoutError(TimeoutError):
|
|
"Raised when a socket timeout occurs while connecting to a server"
|
|
pass
|
|
|
|
|
|
class EmptyPoolError(PoolError):
|
|
"Raised when a pool runs out of connections and no more are allowed."
|
|
pass
|
|
|
|
|
|
class ClosedPoolError(PoolError):
|
|
"Raised when a request enters a pool after the pool has been closed."
|
|
pass
|
|
|
|
|
|
class LocationParseError(ValueError, HTTPError):
|
|
"Raised when get_host or similar fails to parse the URL input."
|
|
|
|
def __init__(self, location):
|
|
message = "Failed to parse: %s" % location
|
|
HTTPError.__init__(self, message)
|
|
|
|
self.location = location
|