Merge pull request #585 from ngosang/feature/status

Improve provider throttle / status to handle all exceptions
This commit is contained in:
morpheus65535 2019-10-05 09:32:53 -04:00 committed by GitHub
commit 9ca305740b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 8 deletions

View File

@ -141,10 +141,11 @@ def provider_throttle(name, exception):
throttle_data = PROVIDER_THROTTLE_MAP.get(name, PROVIDER_THROTTLE_MAP["default"]).get(cls, None) or \ throttle_data = PROVIDER_THROTTLE_MAP.get(name, PROVIDER_THROTTLE_MAP["default"]).get(cls, None) or \
PROVIDER_THROTTLE_MAP["default"].get(cls, None) PROVIDER_THROTTLE_MAP["default"].get(cls, None)
if not throttle_data: if throttle_data:
return throttle_delta, throttle_description = throttle_data
else:
throttle_delta, throttle_description = datetime.timedelta(minutes=10), "10 minutes"
throttle_delta, throttle_description = throttle_data
throttle_until = datetime.datetime.now() + throttle_delta throttle_until = datetime.datetime.now() + throttle_delta
if cls_name not in VALID_COUNT_EXCEPTIONS or throttled_count(name): if cls_name not in VALID_COUNT_EXCEPTIONS or throttled_count(name):

View File

@ -186,12 +186,9 @@ class SZProviderPool(ProviderPool):
except (requests.Timeout, socket.timeout): except (requests.Timeout, socket.timeout):
logger.error('Provider %r timed out', provider) logger.error('Provider %r timed out', provider)
except (TooManyRequests, DownloadLimitExceeded, ServiceUnavailable, APIThrottled), e: except Exception as e:
self.throttle_callback(provider, e)
return
except:
logger.exception('Unexpected error in provider %r: %s', provider, traceback.format_exc()) logger.exception('Unexpected error in provider %r: %s', provider, traceback.format_exc())
self.throttle_callback(provider, e)
def list_subtitles(self, video, languages): def list_subtitles(self, video, languages):
"""List subtitles. """List subtitles.