|
|
|
@ -161,11 +161,12 @@ class ImagefapFolderExtractor(ImagefapExtractor):
|
|
|
|
|
self.user = user or profile
|
|
|
|
|
|
|
|
|
|
def items(self):
|
|
|
|
|
for gallery_id, name in self.galleries(self.folder_id):
|
|
|
|
|
for gallery_id, name, folder in self.galleries(self.folder_id):
|
|
|
|
|
url = "{}/gallery/{}".format(self.root, gallery_id)
|
|
|
|
|
data = {
|
|
|
|
|
"gallery_id": gallery_id,
|
|
|
|
|
"title" : text.unescape(name),
|
|
|
|
|
"folder" : text.unescape(folder),
|
|
|
|
|
"_extractor": ImagefapGalleryExtractor,
|
|
|
|
|
}
|
|
|
|
|
yield Message.Queue, url, data
|
|
|
|
@ -173,6 +174,7 @@ class ImagefapFolderExtractor(ImagefapExtractor):
|
|
|
|
|
def galleries(self, folder_id):
|
|
|
|
|
"""Yield gallery IDs and titles of a folder"""
|
|
|
|
|
if folder_id == "-1":
|
|
|
|
|
folder_name = "Uncategorized"
|
|
|
|
|
if self._id:
|
|
|
|
|
url = "{}/usergallery.php?userid={}&folderid=-1".format(
|
|
|
|
|
self.root, self.user)
|
|
|
|
@ -180,23 +182,28 @@ class ImagefapFolderExtractor(ImagefapExtractor):
|
|
|
|
|
url = "{}/profile/{}/galleries?folderid=-1".format(
|
|
|
|
|
self.root, self.user)
|
|
|
|
|
else:
|
|
|
|
|
folder_name = None
|
|
|
|
|
url = "{}/organizer/{}/".format(self.root, folder_id)
|
|
|
|
|
|
|
|
|
|
params = {"page": 0}
|
|
|
|
|
extr = text.extract_from(self.request(url, params=params).text)
|
|
|
|
|
if not folder_name:
|
|
|
|
|
folder_name = extr("class'blk_galleries'><b>", "</b>")
|
|
|
|
|
|
|
|
|
|
while True:
|
|
|
|
|
extr = text.extract_from(self.request(url, params=params).text)
|
|
|
|
|
cnt = 0
|
|
|
|
|
|
|
|
|
|
while True:
|
|
|
|
|
gid = extr('<a href="/gallery/', '"')
|
|
|
|
|
if not gid:
|
|
|
|
|
break
|
|
|
|
|
yield gid, extr("<b>", "<")
|
|
|
|
|
yield gid, extr("<b>", "<"), folder_name
|
|
|
|
|
cnt += 1
|
|
|
|
|
|
|
|
|
|
if cnt < 20:
|
|
|
|
|
break
|
|
|
|
|
params["page"] += 1
|
|
|
|
|
extr = text.extract_from(self.request(url, params=params).text)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ImagefapUserExtractor(ImagefapExtractor):
|
|
|
|
|