[exhentai] fix pagination (#3181)
This commit is contained in:
@@ -490,15 +490,18 @@ class ExhentaiSearchExtractor(ExhentaiExtractor):
|
||||
self.params = {"f_search": tag, "page": 0}
|
||||
else:
|
||||
self.params = text.parse_query(query)
|
||||
self.params["page"] = text.parse_int(self.params.get("page"))
|
||||
if "next" not in self.params:
|
||||
self.params["page"] = text.parse_int(self.params.get("page"))
|
||||
|
||||
def items(self):
|
||||
self.login()
|
||||
data = {"_extractor": ExhentaiGalleryExtractor}
|
||||
search_url = self.search_url
|
||||
params = self.params
|
||||
|
||||
while True:
|
||||
last = None
|
||||
page = self.request(self.search_url, params=self.params).text
|
||||
page = self.request(search_url, params=params).text
|
||||
|
||||
for gallery in ExhentaiGalleryExtractor.pattern.finditer(page):
|
||||
url = gallery.group(0)
|
||||
@@ -507,9 +510,17 @@ class ExhentaiSearchExtractor(ExhentaiExtractor):
|
||||
last = url
|
||||
yield Message.Queue, url + "/", data
|
||||
|
||||
if 'class="ptdd">><' in page or ">No hits found</p>" in page:
|
||||
next_url = text.extr(page, 'nexturl = "', '"', None)
|
||||
if next_url is not None:
|
||||
if not next_url:
|
||||
return
|
||||
search_url = next_url
|
||||
params = None
|
||||
|
||||
elif 'class="ptdd">><' in page or ">No hits found</p>" in page:
|
||||
return
|
||||
self.params["page"] += 1
|
||||
else:
|
||||
params["page"] += 1
|
||||
|
||||
|
||||
class ExhentaiFavoriteExtractor(ExhentaiSearchExtractor):
|
||||
|
||||
Reference in New Issue
Block a user