Merge remote-tracking branch 'origin/development' into development

pull/1853/head v1.0.5-beta.16
morpheus65535 2 years ago
commit 9c7cbe9a7d

@ -41,9 +41,9 @@ class GestdownSubtitle(Subtitle):
def _retry_on_423(method):
def retry(self, *args, **kwargs):
retries = 0
while 5 > retries:
while 3 > retries:
try:
yield from method(self, *args, **kwargs)
return method(self, *args, **kwargs)
except HTTPError as error:
if error.response.status_code != 423:
raise
@ -52,10 +52,9 @@ def _retry_on_423(method):
logger.debug("423 returned. Retrying in 30 seconds")
time.sleep(30)
else:
break
logger.debug("Retries limit exceeded. Ignoring query")
return []
return retry
@ -84,7 +83,6 @@ class GestdownProvider(Provider):
def terminate(self):
self._session.close()
@_retry_on_423
def _subtitles_search(self, video, language: Language):
json_data = {
"search": f"{video.series} S{video.season:02}E{video.episode:02}",
@ -111,6 +109,7 @@ class GestdownProvider(Provider):
logger.debug("Found subtitle: %s", sub)
yield sub
@_retry_on_423
def list_subtitles(self, video, languages):
subtitles = []
for language in languages:

@ -76,12 +76,11 @@ def test_subtitle_download(subtitle):
assert subtitle.is_valid()
def test_subtitles_search_423(episodes, requests_mock, mocker):
def test_list_subtitles_423(episodes, requests_mock, mocker):
mocker.patch("time.sleep")
requests_mock.post(f"{_BASE_URL}/subtitles/search", status_code=423)
with GestdownProvider() as provider:
gen = provider._subtitles_search(
episodes["breaking_bad_s01e01"], Language.fromietf("en")
assert not provider.list_subtitles(
episodes["breaking_bad_s01e01"], {Language.fromietf("en")}
)
assert not list(gen)

Loading…
Cancel
Save