diff --git a/docs/configuration.rst b/docs/configuration.rst index 7825d071..a88437cb 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -6053,6 +6053,22 @@ Description or `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 diff --git a/docs/gallery-dl.conf b/docs/gallery-dl.conf index 5a2f73f5..bbf49577 100644 --- a/docs/gallery-dl.conf +++ b/docs/gallery-dl.conf @@ -877,8 +877,9 @@ "password": "", "sleep-request": "0.5", - "domain" : "viper.click", - "like" : false + "domain" : "viper.click", + "like" : false, + "order-posts": "desc" }, "vk": { diff --git a/gallery_dl/extractor/vipergirls.py b/gallery_dl/extractor/vipergirls.py index e53ecf48..294fc57d 100644 --- a/gallery_dl/extractor/vipergirls.py +++ b/gallery_dl/extractor/vipergirls.py @@ -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) diff --git a/test/results/vipergirls.py b/test/results/vipergirls.py index 9d96bb73..a6d647b2 100644 --- a/test/results/vipergirls.py +++ b/test/results/vipergirls.py @@ -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, },