[downloader:http] change '_http_retry' to accept a Python function
and rename '_http_retry_codes' to '_http_retry' (#3569)
This commit is contained in:
@@ -100,13 +100,6 @@ class HttpDownloader(DownloaderBase):
|
||||
adjust_extension = kwdict.get(
|
||||
"_http_adjust_extension", self.adjust_extension)
|
||||
|
||||
codes = kwdict.get("_http_retry_codes")
|
||||
if codes:
|
||||
retry_codes = list(self.retry_codes)
|
||||
retry_codes += codes
|
||||
else:
|
||||
retry_codes = self.retry_codes
|
||||
|
||||
if self.part and not metadata:
|
||||
pathfmt.part_enable(self.partdir)
|
||||
|
||||
@@ -167,7 +160,10 @@ class HttpDownloader(DownloaderBase):
|
||||
break
|
||||
else:
|
||||
msg = "'{} {}' for '{}'".format(code, response.reason, url)
|
||||
if code in retry_codes or 500 <= code < 600:
|
||||
if code in self.retry_codes or 500 <= code < 600:
|
||||
continue
|
||||
retry = kwdict.get("_http_retry")
|
||||
if retry and retry(response):
|
||||
continue
|
||||
self.log.warning(msg)
|
||||
return False
|
||||
|
||||
@@ -59,10 +59,7 @@ class NitterExtractor(BaseExtractor):
|
||||
|
||||
if url[0] == "/":
|
||||
url = self.root + url
|
||||
file = {
|
||||
"url": url,
|
||||
"_http_retry_codes": (404,),
|
||||
}
|
||||
file = {"url": url, "_http_retry": _retry_on_404}
|
||||
file["filename"], _, file["extension"] = \
|
||||
name.rpartition(".")
|
||||
append(file)
|
||||
@@ -468,3 +465,7 @@ class NitterTweetExtractor(NitterExtractor):
|
||||
quoted["user"] = tweet["user"]
|
||||
return (tweet, quoted)
|
||||
return (tweet,)
|
||||
|
||||
|
||||
def _retry_on_404(response):
|
||||
return response.status_code == 404
|
||||
|
||||
Reference in New Issue
Block a user