summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/common.py')
-rw-r--r--gallery_dl/extractor/common.py44
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: