diff options
| author | 2020-09-28 18:27:46 -0400 | |
|---|---|---|
| committer | 2020-09-28 18:27:46 -0400 | |
| commit | 9074eee175f76b824fbb6695d56426105191c51c (patch) | |
| tree | 2294be463d325d7092e600d88f160027c437086d /gallery_dl/downloader | |
| parent | 261c8c2bc74969e2242a153297895684742b6995 (diff) | |
New upstream version 1.15.0.upstream/1.15.0
Diffstat (limited to 'gallery_dl/downloader')
| -rw-r--r-- | gallery_dl/downloader/http.py | 29 | ||||
| -rw-r--r-- | gallery_dl/downloader/ytdl.py | 4 |
2 files changed, 31 insertions, 2 deletions
diff --git a/gallery_dl/downloader/http.py b/gallery_dl/downloader/http.py index 6644827..0e67330 100644 --- a/gallery_dl/downloader/http.py +++ b/gallery_dl/downloader/http.py @@ -31,6 +31,8 @@ class HttpDownloader(DownloaderBase): self.downloading = False self.adjust_extension = self.config("adjust-extensions", True) + self.minsize = self.config("filesize-min") + self.maxsize = self.config("filesize-max") self.retries = self.config("retries", extractor._retries) self.timeout = self.config("timeout", extractor._timeout) self.verify = self.config("verify", extractor._verify) @@ -39,6 +41,16 @@ class HttpDownloader(DownloaderBase): if self.retries < 0: self.retries = float("inf") + if self.minsize: + minsize = text.parse_bytes(self.minsize) + if not minsize: + self.log.warning("Invalid minimum filesize (%r)", self.minsize) + self.minsize = minsize + if self.maxsize: + maxsize = text.parse_bytes(self.maxsize) + if not maxsize: + self.log.warning("Invalid maximum filesize (%r)", self.maxsize) + self.maxsize = maxsize if self.rate: rate = text.parse_bytes(self.rate) if rate: @@ -75,7 +87,7 @@ class HttpDownloader(DownloaderBase): self.log.warning("%s (%s/%s)", msg, tries, self.retries+1) if tries > self.retries: return False - time.sleep(min(2 ** (tries-1), 1800)) + time.sleep(tries) tries += 1 headers = {} @@ -116,7 +128,20 @@ class HttpDownloader(DownloaderBase): continue self.log.warning(msg) return False - size = text.parse_int(size) + + # check filesize + size = text.parse_int(size, None) + if size is not None: + if self.minsize and size < self.minsize: + self.log.warning( + "File size smaller than allowed minimum (%s < %s)", + size, self.minsize) + return False + if self.maxsize and size > self.maxsize: + self.log.warning( + "File size larger than allowed maximum (%s > %s)", + size, self.maxsize) + return False # set missing filename extension if not pathfmt.extension: diff --git a/gallery_dl/downloader/ytdl.py b/gallery_dl/downloader/ytdl.py index c3dd863..8086b5d 100644 --- a/gallery_dl/downloader/ytdl.py +++ b/gallery_dl/downloader/ytdl.py @@ -31,6 +31,10 @@ class YoutubeDLDownloader(DownloaderBase): "nopart": not self.part, "updatetime": self.config("mtime", True), "proxy": extractor.session.proxies.get("http"), + "min_filesize": text.parse_bytes( + self.config("filesize-min"), None), + "max_filesize": text.parse_bytes( + self.config("filesize-max"), None), } options.update(self.config("raw-options") or {}) |
