mirror of
https://github.com/morpheus65535/bazarr
synced 2025-01-03 05:25:28 +00:00
Merge remote-tracking branch 'origin/development' into development
This commit is contained in:
commit
9c7cbe9a7d
2 changed files with 7 additions and 9 deletions
|
@ -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…
Reference in a new issue