[dankefuerslesen] fix several issues (#7669)
- 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'
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
"""Extractors for https://danke.moe/"""
|
"""Extractors for https://danke.moe/"""
|
||||||
|
|
||||||
from .common import ChapterExtractor, MangaExtractor
|
from .common import ChapterExtractor, MangaExtractor
|
||||||
from .. import text
|
from .. import text, util
|
||||||
from ..cache import memcache
|
from ..cache import memcache
|
||||||
|
|
||||||
BASE_PATTERN = r"(?:https?://)?(?:www\.)?danke\.moe"
|
BASE_PATTERN = r"(?:https?://)?(?:www\.)?danke\.moe"
|
||||||
@@ -53,7 +53,7 @@ class DankefuerslesenChapterExtractor(DankefuerslesenBase, ChapterExtractor):
|
|||||||
minor = ""
|
minor = ""
|
||||||
|
|
||||||
data = manga["chapters"][ch]
|
data = manga["chapters"][ch]
|
||||||
group_id, self._files = data["groups"].popitem()
|
group_id, self._files = next(iter(data["groups"].items()))
|
||||||
|
|
||||||
if not self.zip:
|
if not self.zip:
|
||||||
self.base = (f"{self.root}/media/manga/{slug}/chapters"
|
self.base = (f"{self.root}/media/manga/{slug}/chapters"
|
||||||
@@ -66,11 +66,11 @@ class DankefuerslesenChapterExtractor(DankefuerslesenBase, ChapterExtractor):
|
|||||||
"volume" : text.parse_int(data["volume"]),
|
"volume" : text.parse_int(data["volume"]),
|
||||||
"chapter" : text.parse_int(chapter),
|
"chapter" : text.parse_int(chapter),
|
||||||
"chapter_minor": minor,
|
"chapter_minor": minor,
|
||||||
"group" : manga["groups"][group_id],
|
"group" : manga["groups"][group_id].split(" & "),
|
||||||
"group_id" : text.parse_int(group_id),
|
"group_id" : text.parse_int(group_id),
|
||||||
"date" : text.parse_timestamp(data["release_date"][group_id]),
|
"date" : text.parse_timestamp(data["release_date"][group_id]),
|
||||||
"lang" : "en",
|
"lang" : util.NONE,
|
||||||
"language" : "English",
|
"language" : util.NONE,
|
||||||
}
|
}
|
||||||
|
|
||||||
def images(self, page):
|
def images(self, page):
|
||||||
@@ -94,6 +94,7 @@ class DankefuerslesenChapterExtractor(DankefuerslesenBase, ChapterExtractor):
|
|||||||
class DankefuerslesenMangaExtractor(DankefuerslesenBase, MangaExtractor):
|
class DankefuerslesenMangaExtractor(DankefuerslesenBase, MangaExtractor):
|
||||||
"""Extractor for Danke fürs Lesen manga"""
|
"""Extractor for Danke fürs Lesen manga"""
|
||||||
chapterclass = DankefuerslesenChapterExtractor
|
chapterclass = DankefuerslesenChapterExtractor
|
||||||
|
reverse = False
|
||||||
pattern = BASE_PATTERN + r"/read/manga/([^/?#]+)"
|
pattern = BASE_PATTERN + r"/read/manga/([^/?#]+)"
|
||||||
example = "https://danke.moe/read/manga/TITLE/"
|
example = "https://danke.moe/read/manga/TITLE/"
|
||||||
|
|
||||||
@@ -104,6 +105,9 @@ class DankefuerslesenMangaExtractor(DankefuerslesenBase, MangaExtractor):
|
|||||||
results = []
|
results = []
|
||||||
|
|
||||||
manga = self._manga_info(self.groups[0]).copy()
|
manga = self._manga_info(self.groups[0]).copy()
|
||||||
|
manga["lang"] = util.NONE
|
||||||
|
manga["language"] = util.NONE
|
||||||
|
|
||||||
base = f"{self.root}/read/manga/{manga['slug']}/"
|
base = f"{self.root}/read/manga/{manga['slug']}/"
|
||||||
for ch, data in manga.pop("chapters").items():
|
for ch, data in manga.pop("chapters").items():
|
||||||
|
|
||||||
@@ -111,13 +115,12 @@ class DankefuerslesenMangaExtractor(DankefuerslesenBase, MangaExtractor):
|
|||||||
chapter, sep, minor = ch.rpartition(".")
|
chapter, sep, minor = ch.rpartition(".")
|
||||||
ch = ch.replace('.', '-')
|
ch = ch.replace('.', '-')
|
||||||
data["chapter"] = text.parse_int(chapter)
|
data["chapter"] = text.parse_int(chapter)
|
||||||
data["chapter-minor"] = sep + minor
|
data["chapter_minor"] = sep + minor
|
||||||
else:
|
else:
|
||||||
data["chapter"] = text.parse_int(ch)
|
data["chapter"] = text.parse_int(ch)
|
||||||
data["chapter-minor"] = ""
|
data["chapter_minor"] = ""
|
||||||
|
|
||||||
url = f"{base}{ch}/1/"
|
|
||||||
manga.update(data)
|
manga.update(data)
|
||||||
results.append((url, manga))
|
results.append((f"{base}{ch}/1/", manga))
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ __tests__ = (
|
|||||||
"date" : "dt:2025-02-09 19:03:08",
|
"date" : "dt:2025-02-09 19:03:08",
|
||||||
"extension" : "png",
|
"extension" : "png",
|
||||||
"filename" : str,
|
"filename" : str,
|
||||||
"group" : "Good Try Scans",
|
"group" : ["Good Try Scans"],
|
||||||
"group_id" : 69,
|
"group_id" : 69,
|
||||||
"lang" : "en",
|
"lang" : None,
|
||||||
"language" : "English",
|
"language" : None,
|
||||||
"manga" : "Awana-chan wa Kyou mo Shiawase",
|
"manga" : "Awana-chan wa Kyou mo Shiawase",
|
||||||
"manga_slug": "awana-chan-wa-kyou-mo-shiawase",
|
"manga_slug": "awana-chan-wa-kyou-mo-shiawase",
|
||||||
"title" : "Eat some ramen!",
|
"title" : "Eat some ramen!",
|
||||||
@@ -58,10 +58,10 @@ __tests__ = (
|
|||||||
"date" : "dt:2024-10-10 07:12:44",
|
"date" : "dt:2024-10-10 07:12:44",
|
||||||
"extension" : "png",
|
"extension" : "png",
|
||||||
"filename" : str,
|
"filename" : str,
|
||||||
"group" : "Danke fürs Lesen & Senko-san's Abode",
|
"group" : ["Danke fürs Lesen", "Senko-san's Abode"],
|
||||||
"group_id" : 56,
|
"group_id" : 56,
|
||||||
"lang" : "en",
|
"lang" : None,
|
||||||
"language" : "English",
|
"language" : None,
|
||||||
"manga" : "Raul and The Vampire",
|
"manga" : "Raul and The Vampire",
|
||||||
"manga_slug": "raul-and-the-vampire",
|
"manga_slug": "raul-and-the-vampire",
|
||||||
"title" : "Volume 1 Extras",
|
"title" : "Volume 1 Extras",
|
||||||
@@ -71,10 +71,17 @@ __tests__ = (
|
|||||||
"#url" : "https://danke.moe/read/manga/awana-chan-wa-kyou-mo-shiawase/",
|
"#url" : "https://danke.moe/read/manga/awana-chan-wa-kyou-mo-shiawase/",
|
||||||
"#class" : dankefuerslesen.DankefuerslesenMangaExtractor,
|
"#class" : dankefuerslesen.DankefuerslesenMangaExtractor,
|
||||||
"#pattern" : dankefuerslesen.DankefuerslesenChapterExtractor.pattern,
|
"#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": "",
|
"chapter_minor": "",
|
||||||
|
"lang" : None,
|
||||||
|
"language": None,
|
||||||
},
|
},
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user