From 390eeded4c0ceb645396cf4adb7c6d0f0ccef899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Fri, 21 Jul 2017 16:25:56 +0200 Subject: [PATCH] =?UTF-8?q?[mangazuki]=20support=20'raws.=E2=80=A6'=20subd?= =?UTF-8?q?omain?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gallery_dl/extractor/mangazuki.py | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/gallery_dl/extractor/mangazuki.py b/gallery_dl/extractor/mangazuki.py index 529576f3..359bb91b 100644 --- a/gallery_dl/extractor/mangazuki.py +++ b/gallery_dl/extractor/mangazuki.py @@ -9,7 +9,7 @@ """Extract manga-chapters and entire manga from https://mangazuki.co/""" from .common import Extractor, MangaExtractor, Message -from .. import text, exception +from .. import text, util, exception class MangazukiChapterExtractor(Extractor): @@ -18,12 +18,16 @@ class MangazukiChapterExtractor(Extractor): subcategory = "chapter" directory_fmt = ["{category}", "{manga}", "c{chapter:>03}"] filename_fmt = ("{manga}_c{chapter:>03}_{page:>03}.{extension}") - pattern = [r"(?:https?://)?(?:www\.)?(mangazuki\.co/read/[^/]+/\d+)"] + pattern = [r"(?:https?://)?((raws\.)?mangazuki\.co/read/[^/]+/\d+)"] test = [ ("https://mangazuki.co/read/Double-Casting/59", { "url": "47b4102da3ee1bd28459848904e8b7ff48e1ac5e", "keyword": "b4cac50b3a3a1dd06451d1917a0faae2c6a51b95", }), + ("https://raws.mangazuki.co/read/Rakujitsu-no-Pathos/25", { + "url": "c1c95d9954185f53a8449f497239aee181bea4af", + "keyword": "7554ca641f10e84fa5594e5ff8bd3925a5ff2e80", + }), ("https://mangazuki.co/read/Double-Casting/999", { "exception": exception.NotFoundError, }), @@ -32,6 +36,7 @@ class MangazukiChapterExtractor(Extractor): def __init__(self, match): Extractor.__init__(self) self.url = "https://" + match.group(1) + self.lang = "" if match.group(2) else "en" def items(self): response = self.request(self.url) @@ -49,10 +54,15 @@ class MangazukiChapterExtractor(Extractor): def get_metadata(self, page): """Collect metadata for extractor-job""" + data = { + "lang": self.lang, + "language": util.code_to_language(self.lang, self.lang), + } return text.extract_all(page, ( - ("manga" , "Mangazuki - ", " - Chapter "), + (None , "<title>Mangazuki", ""), + ("manga" , " - ", " - Chapter "), ("chapter", "", ""), - ), values={"lang": "en", "language": "English"})[0] + ), values=data)[0] @staticmethod def get_images(page): @@ -63,11 +73,16 @@ class MangazukiChapterExtractor(Extractor): class MangazukiMangaExtractor(MangaExtractor): """Extractor for manga from mangazuki.co""" category = "mangazuki" - pattern = [r"(?:https?://)?(?:www\.)?(mangazuki\.co/series/[^/?&#]+)"] + pattern = [r"(?:https?://)?((?:raws\.)?mangazuki\.co/series/[^/?&#]+)"] scheme = "https" - test = [("https://mangazuki.co/series/Double-Casting", { - "url": "aab747414191b14e768f4a1eb148448d83ef2e14", - })] + test = [ + ("https://mangazuki.co/series/Double-Casting", { + "url": "aab747414191b14e768f4a1eb148448d83ef2e14", + }), + ("https://raws.mangazuki.co/series/Rakujitsu-no-Pathos", { + "url": "4c5fcee4ad306faa3cfe952f7474293a99d11787", + }), + ] def chapters(self, page): params = {"page": 1}