[exhentai] fix pagination (#3181)
This commit is contained in:
@@ -490,15 +490,18 @@ class ExhentaiSearchExtractor(ExhentaiExtractor):
|
|||||||
self.params = {"f_search": tag, "page": 0}
|
self.params = {"f_search": tag, "page": 0}
|
||||||
else:
|
else:
|
||||||
self.params = text.parse_query(query)
|
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):
|
def items(self):
|
||||||
self.login()
|
self.login()
|
||||||
data = {"_extractor": ExhentaiGalleryExtractor}
|
data = {"_extractor": ExhentaiGalleryExtractor}
|
||||||
|
search_url = self.search_url
|
||||||
|
params = self.params
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
last = None
|
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):
|
for gallery in ExhentaiGalleryExtractor.pattern.finditer(page):
|
||||||
url = gallery.group(0)
|
url = gallery.group(0)
|
||||||
@@ -507,9 +510,17 @@ class ExhentaiSearchExtractor(ExhentaiExtractor):
|
|||||||
last = url
|
last = url
|
||||||
yield Message.Queue, url + "/", data
|
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
|
return
|
||||||
self.params["page"] += 1
|
else:
|
||||||
|
params["page"] += 1
|
||||||
|
|
||||||
|
|
||||||
class ExhentaiFavoriteExtractor(ExhentaiSearchExtractor):
|
class ExhentaiFavoriteExtractor(ExhentaiSearchExtractor):
|
||||||
|
|||||||
Reference in New Issue
Block a user