diff --git a/gallery_dl/extractor/unsplash.py b/gallery_dl/extractor/unsplash.py index bf6d2541..545eb31d 100644 --- a/gallery_dl/extractor/unsplash.py +++ b/gallery_dl/extractor/unsplash.py @@ -21,6 +21,8 @@ class UnsplashExtractor(Extractor): filename_fmt = "{id}.{extension}" archive_fmt = "{id}" root = "https://unsplash.com" + page_start = 1 + per_page = 20 def __init__(self, match): Extractor.__init__(self, match) @@ -42,9 +44,14 @@ class UnsplashExtractor(Extractor): yield Message.Directory, photo yield Message.Url, url, photo + def skip(self, num): + pages = num // self.per_page + self.page_start += pages + return pages * self.per_page + def _pagination(self, url, params, results=False): - params["per_page"] = "20" - params["page"] = 1 + params["per_page"] = self.per_page + params["page"] = self.page_start while True: photos = self.request(url, params=params).json() @@ -52,7 +59,7 @@ class UnsplashExtractor(Extractor): photos = photos["results"] yield from photos - if len(photos) < 20: + if len(photos) < self.per_page: return params["page"] += 1