[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"
|
||||
else:
|
||||
url = f"{self.root}/usergallery.php?userid={user_id}"
|
||||
params = {"page": 0}
|
||||
pnum = 0
|
||||
|
||||
response = self.request(url)
|
||||
self.user = response.url.split("/")[-2]
|
||||
folders = text.extr(response.text, ' id="tgl_all" value="', '"')
|
||||
return folders.rstrip("|").split("|")
|
||||
self.user = None
|
||||
while True:
|
||||
response = self.request(url, params=params)
|
||||
|
||||
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,
|
||||
},
|
||||
|
||||
{
|
||||
"#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