[imagefap:user] support multiple pages (#9016)
This commit is contained in:
@@ -219,8 +219,26 @@ class ImagefapUserExtractor(ImagefapExtractor):
|
|||||||
url = f"{self.root}/profile/{user}/galleries"
|
url = f"{self.root}/profile/{user}/galleries"
|
||||||
else:
|
else:
|
||||||
url = f"{self.root}/usergallery.php?userid={user_id}"
|
url = f"{self.root}/usergallery.php?userid={user_id}"
|
||||||
|
params = {"page": 0}
|
||||||
|
pnum = 0
|
||||||
|
|
||||||
response = self.request(url)
|
self.user = None
|
||||||
self.user = response.url.split("/")[-2]
|
while True:
|
||||||
folders = text.extr(response.text, ' id="tgl_all" value="', '"')
|
response = self.request(url, params=params)
|
||||||
return folders.rstrip("|").split("|")
|
|
||||||
|
if self.user is None:
|
||||||
|
url = response.url.partition("?")[0]
|
||||||
|
self.user = url.rsplit("/", 2)[1]
|
||||||
|
|
||||||
|
page = response.text
|
||||||
|
folders = text.extr(
|
||||||
|
page, ' id="tgl_all" value="', '"').rstrip("|").split("|")
|
||||||
|
if folders and folders[-1] == "-1":
|
||||||
|
last = folders.pop()
|
||||||
|
if not pnum:
|
||||||
|
folders.insert(0, last)
|
||||||
|
yield from folders
|
||||||
|
|
||||||
|
params["page"] = pnum = pnum + 1
|
||||||
|
if f'href="?page={pnum}">{pnum+1}</a>' not in page:
|
||||||
|
return
|
||||||
|
|||||||
@@ -208,4 +208,13 @@ __tests__ = (
|
|||||||
"#class" : imagefap.ImagefapUserExtractor,
|
"#class" : imagefap.ImagefapUserExtractor,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"#url" : "https://www.imagefap.com/profile/brookdale",
|
||||||
|
"#comment" : "multiple pagea (#9016)",
|
||||||
|
"#class" : imagefap.ImagefapUserExtractor,
|
||||||
|
"#pattern" : imagefap.ImagefapFolderExtractor.pattern,
|
||||||
|
"#range" : "1-100",
|
||||||
|
"#count" : 100,
|
||||||
|
},
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user