[imagefap:user] support multiple pages (#9016)

This commit is contained in:
Mike Fährmann
2026-02-08 10:26:49 +01:00
parent a8636e75a1
commit d3c4328078
2 changed files with 31 additions and 4 deletions

View File

@@ -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

View File

@@ -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,
},
) )