From fc1ed0348409cc56e62081a140daac4530d19848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sun, 22 Jun 2025 19:52:40 +0200 Subject: [PATCH] [dankefuerslesen] fix several issues (#7669) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - return chapters in first-to-last order - provide 'group' as list of names - remove hardcoded 'en' and 'English' language results - replace 'popitem()' with non-destructive 'next(iter(…))' - 'chapter-minor' -> 'chapter_minor' --- gallery_dl/extractor/dankefuerslesen.py | 21 ++++++++++++--------- test/results/dankefuerslesen.py | 23 +++++++++++++++-------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/gallery_dl/extractor/dankefuerslesen.py b/gallery_dl/extractor/dankefuerslesen.py index 5d2b6027..c87dc2e2 100644 --- a/gallery_dl/extractor/dankefuerslesen.py +++ b/gallery_dl/extractor/dankefuerslesen.py @@ -9,7 +9,7 @@ """Extractors for https://danke.moe/""" from .common import ChapterExtractor, MangaExtractor -from .. import text +from .. import text, util from ..cache import memcache BASE_PATTERN = r"(?:https?://)?(?:www\.)?danke\.moe" @@ -53,7 +53,7 @@ class DankefuerslesenChapterExtractor(DankefuerslesenBase, ChapterExtractor): minor = "" data = manga["chapters"][ch] - group_id, self._files = data["groups"].popitem() + group_id, self._files = next(iter(data["groups"].items())) if not self.zip: self.base = (f"{self.root}/media/manga/{slug}/chapters" @@ -66,11 +66,11 @@ class DankefuerslesenChapterExtractor(DankefuerslesenBase, ChapterExtractor): "volume" : text.parse_int(data["volume"]), "chapter" : text.parse_int(chapter), "chapter_minor": minor, - "group" : manga["groups"][group_id], + "group" : manga["groups"][group_id].split(" & "), "group_id" : text.parse_int(group_id), "date" : text.parse_timestamp(data["release_date"][group_id]), - "lang" : "en", - "language" : "English", + "lang" : util.NONE, + "language" : util.NONE, } def images(self, page): @@ -94,6 +94,7 @@ class DankefuerslesenChapterExtractor(DankefuerslesenBase, ChapterExtractor): class DankefuerslesenMangaExtractor(DankefuerslesenBase, MangaExtractor): """Extractor for Danke fürs Lesen manga""" chapterclass = DankefuerslesenChapterExtractor + reverse = False pattern = BASE_PATTERN + r"/read/manga/([^/?#]+)" example = "https://danke.moe/read/manga/TITLE/" @@ -104,6 +105,9 @@ class DankefuerslesenMangaExtractor(DankefuerslesenBase, MangaExtractor): results = [] manga = self._manga_info(self.groups[0]).copy() + manga["lang"] = util.NONE + manga["language"] = util.NONE + base = f"{self.root}/read/manga/{manga['slug']}/" for ch, data in manga.pop("chapters").items(): @@ -111,13 +115,12 @@ class DankefuerslesenMangaExtractor(DankefuerslesenBase, MangaExtractor): chapter, sep, minor = ch.rpartition(".") ch = ch.replace('.', '-') data["chapter"] = text.parse_int(chapter) - data["chapter-minor"] = sep + minor + data["chapter_minor"] = sep + minor else: data["chapter"] = text.parse_int(ch) - data["chapter-minor"] = "" + data["chapter_minor"] = "" - url = f"{base}{ch}/1/" manga.update(data) - results.append((url, manga)) + results.append((f"{base}{ch}/1/", manga)) return results diff --git a/test/results/dankefuerslesen.py b/test/results/dankefuerslesen.py index 011ce9d6..96d5d883 100644 --- a/test/results/dankefuerslesen.py +++ b/test/results/dankefuerslesen.py @@ -22,10 +22,10 @@ __tests__ = ( "date" : "dt:2025-02-09 19:03:08", "extension" : "png", "filename" : str, - "group" : "Good Try Scans", + "group" : ["Good Try Scans"], "group_id" : 69, - "lang" : "en", - "language" : "English", + "lang" : None, + "language" : None, "manga" : "Awana-chan wa Kyou mo Shiawase", "manga_slug": "awana-chan-wa-kyou-mo-shiawase", "title" : "Eat some ramen!", @@ -58,10 +58,10 @@ __tests__ = ( "date" : "dt:2024-10-10 07:12:44", "extension" : "png", "filename" : str, - "group" : "Danke fürs Lesen & Senko-san's Abode", + "group" : ["Danke fürs Lesen", "Senko-san's Abode"], "group_id" : 56, - "lang" : "en", - "language" : "English", + "lang" : None, + "language" : None, "manga" : "Raul and The Vampire", "manga_slug": "raul-and-the-vampire", "title" : "Volume 1 Extras", @@ -71,10 +71,17 @@ __tests__ = ( "#url" : "https://danke.moe/read/manga/awana-chan-wa-kyou-mo-shiawase/", "#class" : dankefuerslesen.DankefuerslesenMangaExtractor, "#pattern" : dankefuerslesen.DankefuerslesenChapterExtractor.pattern, - "#count" : 4, + "#results" : ( + "https://danke.moe/read/manga/awana-chan-wa-kyou-mo-shiawase/1/1/", + "https://danke.moe/read/manga/awana-chan-wa-kyou-mo-shiawase/2/1/", + "https://danke.moe/read/manga/awana-chan-wa-kyou-mo-shiawase/3/1/", + "https://danke.moe/read/manga/awana-chan-wa-kyou-mo-shiawase/4/1/", + ), - "chapter": range(1, 4), + "chapter" : range(1, 4), "chapter_minor": "", + "lang" : None, + "language": None, }, )