[vipergirls] implement 'order-posts' option (#8248)

This commit is contained in:
Mike Fährmann
2025-09-21 19:19:59 +02:00
parent 8d672fb1ea
commit 5066de020a
4 changed files with 31 additions and 5 deletions

View File

@@ -6053,6 +6053,22 @@ Description
or `cookies <extractor.*.cookies_>`__
extractor.vipergirls.order-posts
--------------------------------
Type
``string``
Default
``"desc"``
Description
Controls the order in which
posts of a ``thread`` are processed.
``"asc"``
Ascending order (oldest first)
``"desc"`` | ``"reverse"``
Descending order (newest first)
extractor.vk.offset
-------------------
Type

View File

@@ -877,8 +877,9 @@
"password": "",
"sleep-request": "0.5",
"domain" : "viper.click",
"like" : false
"domain" : "viper.click",
"like" : false,
"order-posts": "desc"
},
"vk":
{

View File

@@ -51,8 +51,16 @@ class VipergirlsExtractor(Extractor):
like = False
posts = root.iter("post")
if self.page:
util.advance(posts, (text.parse_int(self.page[5:]) - 1) * 15)
if (order := self.config("order-posts")) and \
order[0] not in ("d", "r"):
if self.page:
util.advance(posts, (text.parse_int(self.page[5:]) - 1) * 15)
else:
posts = list(posts)
if self.page:
offset = text.parse_int(self.page[5:]) * 15
posts = posts[:offset]
posts.reverse()
for post in posts:
images = list(post)

View File

@@ -13,7 +13,7 @@ __tests__ = (
"#category": ("", "vipergirls", "thread"),
"#class" : vipergirls.VipergirlsThreadExtractor,
"#count" : 225,
"#sha1_url": "0d75cb42777f5bebc0d284d1d38cb90c750c61d9",
"#sha1_url": "3a127b2d4f61d538ac4ad5340a787ef9f0b05b1f",
"count" : {112, 113},
"num" : range(1, 113),
@@ -29,6 +29,7 @@ __tests__ = (
"#url" : "https://vipergirls.to/threads/6858916-Karina/page4",
"#category": ("", "vipergirls", "thread"),
"#class" : vipergirls.VipergirlsThreadExtractor,
"#options" : {"order-posts": "asc"},
"#count" : 1279,
},