[unsplash] implement 'skip()'
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user