aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/vipergirls.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/vipergirls.py')
-rw-r--r--gallery_dl/extractor/vipergirls.py29
1 files changed, 19 insertions, 10 deletions
diff --git a/gallery_dl/extractor/vipergirls.py b/gallery_dl/extractor/vipergirls.py
index af3f32d..1dd3482 100644
--- a/gallery_dl/extractor/vipergirls.py
+++ b/gallery_dl/extractor/vipergirls.py
@@ -43,31 +43,40 @@ class VipergirlsExtractor(Extractor):
def items(self):
self.login()
- posts = self.posts()
+ root = self.posts()
+ forum_title = root[1].attrib["title"]
+ thread_title = root[2].attrib["title"]
like = self.config("like")
if like:
- user_hash = posts[0].get("hash")
+ user_hash = root[0].get("hash")
if len(user_hash) < 16:
self.log.warning("Login required to like posts")
like = False
- posts = posts.iter("post")
+ posts = root.iter("post")
if self.page:
util.advance(posts, (text.parse_int(self.page[5:]) - 1) * 15)
for post in posts:
+ images = list(post)
+
data = post.attrib
+ data["forum_title"] = forum_title
data["thread_id"] = self.thread_id
+ data["thread_title"] = thread_title
+ data["post_id"] = data.pop("id")
+ data["post_num"] = data.pop("number")
+ data["post_title"] = data.pop("title")
+ data["count"] = len(images)
+ del data["imagecount"]
yield Message.Directory, data
-
- image = None
- for image in post:
- yield Message.Queue, image.attrib["main_url"], data
-
- if image is not None and like:
- self.like(post, user_hash)
+ if images:
+ for data["num"], image in enumerate(images, 1):
+ yield Message.Queue, image.attrib["main_url"], data
+ if like:
+ self.like(post, user_hash)
def login(self):
if self.cookies_check(self.cookies_names):