[unsplash] implement 'skip()'

pull/1294/head
Mike Fährmann 4 years ago
parent e1bdd2ab67
commit 1d13e48512
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -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

Loading…
Cancel
Save