From efa805c5d78db2557f3adb828ab91013e2bfa648 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Mon, 20 May 2019 15:26:44 +0200 Subject: [PATCH] [sankaku] update pagination end condition (fixes #265) Pagination over popular listings (`date:...+order:popular") never terminates, not even on the site itself, and at some point returns the same results over and over again. --- CHANGELOG.md | 2 ++ gallery_dl/extractor/sankaku.py | 5 +++++ gallery_dl/version.py | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46694aa7..a30eb6fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Changelog +## Unreleased + ## 1.8.4 - 2019-05-17 ### Additions - Support for diff --git a/gallery_dl/extractor/sankaku.py b/gallery_dl/extractor/sankaku.py index e0d519c3..9d3dc7c3 100644 --- a/gallery_dl/extractor/sankaku.py +++ b/gallery_dl/extractor/sankaku.py @@ -225,6 +225,11 @@ class SankakuTagExtractor(SankakuExtractor): next_qs = text.extract(page, 'next-page-url="/?', '"', pos)[0] next_id = text.parse_query(next_qs).get("next") + + # stop if the same "next" parameter occurs twice in a row (#265) + if "next" in params and params["next"] == next_id: + return + params["next"] = next_id or (text.parse_int(ids[-1]) - 1) params["page"] = "2" diff --git a/gallery_dl/version.py b/gallery_dl/version.py index 2460782b..cebb93b0 100644 --- a/gallery_dl/version.py +++ b/gallery_dl/version.py @@ -6,4 +6,4 @@ # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. -__version__ = "1.8.4" +__version__ = "1.8.5-dev"