1
0
mirror of https://github.com/mikf/gallery-dl.git synced 2024-11-25 04:02:32 +01:00

[downloader.http] implement file-specific HTTP headers

This commit is contained in:
Mike Fährmann 2019-11-19 23:50:54 +01:00
parent 977026c5ad
commit bbbeff4c41
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88
2 changed files with 9 additions and 5 deletions

View File

@ -77,12 +77,15 @@ class HttpDownloader(DownloaderBase):
time.sleep(min(2 ** (tries-1), 1800))
tries += 1
headers = {}
# check for .part file
filesize = pathfmt.part_size()
if filesize:
headers = {"Range": "bytes={}-".format(filesize)}
else:
headers = None
headers["Range"] = "bytes={}-".format(filesize)
# file-specific headers
extra = pathfmt.kwdict.get("_http_headers")
if extra:
headers.update(extra)
# connect to (remote) source
try:

View File

@ -189,7 +189,7 @@ class ResultJob(job.DownloadJob):
self._update_url(url)
self._update_kwdict(kwdict)
self._update_archive(kwdict)
self._update_content(url)
self._update_content(url, kwdict)
self.format_filename(kwdict)
def handle_directory(self, kwdict):
@ -217,9 +217,10 @@ class ResultJob(job.DownloadJob):
self.archive_list.append(archive_id)
self.archive_hash.update(archive_id.encode())
def _update_content(self, url):
def _update_content(self, url, kwdict):
if self.content:
scheme = url.partition(":")[0]
self.fileobj.kwdict = kwdict
self.get_downloader(scheme).download(url, self.fileobj)