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

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

Loading…
Cancel
Save