diff options
Diffstat (limited to 'gallery_dl/extractor/common.py')
| -rw-r--r-- | gallery_dl/extractor/common.py | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/gallery_dl/extractor/common.py b/gallery_dl/extractor/common.py index d9f69ab..4f42477 100644 --- a/gallery_dl/extractor/common.py +++ b/gallery_dl/extractor/common.py @@ -42,6 +42,7 @@ class Extractor(): def __init__(self, match): self.log = logging.getLogger(self.category) self.url = match.string + self.finalize = None if self.basecategory: self.config = self._config_shared @@ -53,13 +54,13 @@ class Extractor(): self._retries = self.config("retries", 4) self._timeout = self.config("timeout", 30) self._verify = self.config("verify", True) - self.request_interval = self.config( - "sleep-request", self.request_interval) + self._interval = util.build_duration_func( + self.config("sleep-request", self.request_interval), + self.request_interval_min, + ) if self._retries < 0: self._retries = float("inf") - if self.request_interval < self.request_interval_min: - self.request_interval = self.request_interval_min self._init_session() self._init_cookies() @@ -102,15 +103,19 @@ class Extractor(): def request(self, url, *, method="GET", session=None, retries=None, encoding=None, fatal=True, notfound=None, **kwargs): - tries = 1 - retries = self._retries if retries is None else retries - session = self.session if session is None else session - kwargs.setdefault("timeout", self._timeout) - kwargs.setdefault("verify", self._verify) + if retries is None: + retries = self._retries + if session is None: + session = self.session + if "timeout" not in kwargs: + kwargs["timeout"] = self._timeout + if "verify" not in kwargs: + kwargs["verify"] = self._verify response = None + tries = 1 - if self.request_interval: - seconds = (self.request_interval - + if self._interval: + seconds = (self._interval() - (time.time() - Extractor.request_timestamp)) if seconds > 0.0: self.log.debug("Sleeping for %.5s seconds", seconds) @@ -442,16 +447,23 @@ class GalleryExtractor(Extractor): imgs = self.images(page) if "count" in data: - images = zip( - range(1, data["count"]+1), - imgs, - ) + if self.config("page-reverse"): + images = util.enumerate_reversed(imgs, 1, data["count"]) + else: + images = zip( + range(1, data["count"]+1), + imgs, + ) else: + enum = enumerate try: data["count"] = len(imgs) except TypeError: pass - images = enumerate(imgs, 1) + else: + if self.config("page-reverse"): + enum = util.enumerate_reversed + images = enum(imgs, 1) yield Message.Directory, data for data[self.enum], (url, imgdata) in images: |
