[dl:http] implement '_http_segmented' (#8602)
This commit is contained in:
@@ -342,9 +342,15 @@ class HttpDownloader(DownloaderBase):
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
# check file size
|
# check file size
|
||||||
if size and fp.tell() < size:
|
if size and (fsize := fp.tell()) < size:
|
||||||
msg = f"file size mismatch ({fp.tell()} < {size})"
|
if (segmented := kwdict.get("_http_segmented")) and \
|
||||||
output.stderr_write("\n")
|
segmented is True or segmented == fsize:
|
||||||
|
tries -= 1
|
||||||
|
msg = "Resuming segmented download"
|
||||||
|
output.stdout_write("\r")
|
||||||
|
else:
|
||||||
|
msg = f"file size mismatch ({fsize} < {size})"
|
||||||
|
output.stderr_write("\n")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -59,9 +59,13 @@ class AudiochanExtractor(Extractor):
|
|||||||
if self.user:
|
if self.user:
|
||||||
post["user"] = post["credits"][0]["user"]
|
post["user"] = post["credits"][0]["user"]
|
||||||
|
|
||||||
|
if not (url := file["url"]):
|
||||||
|
post["_http_segmented"] = 600000
|
||||||
|
url = file["stream_url"]
|
||||||
|
|
||||||
yield Message.Directory, post
|
yield Message.Directory, post
|
||||||
text.nameext_from_name(file["filename"], post)
|
text.nameext_from_name(file["filename"], post)
|
||||||
yield Message.Url, file["url"] or file["stream_url"], post
|
yield Message.Url, url, post
|
||||||
|
|
||||||
def request_api(self, endpoint, params=None):
|
def request_api(self, endpoint, params=None):
|
||||||
url = self.root_api + endpoint
|
url = self.root_api + endpoint
|
||||||
|
|||||||
Reference in New Issue
Block a user