diff --git a/gallery_dl/extractor/mangafox.py b/gallery_dl/extractor/mangafox.py index a9d504e2..d97aeb42 100644 --- a/gallery_dl/extractor/mangafox.py +++ b/gallery_dl/extractor/mangafox.py @@ -8,8 +8,12 @@ """Extractors for from https://fanfox.net/""" -from .common import ChapterExtractor +from .common import ChapterExtractor, MangaExtractor from .. import text +import re + +BASE_PATTERN = \ + r"(?:https?://)?(?:www\.|m\.)?(?:fanfox\.net|mangafox\.me)" class MangafoxChapterExtractor(ChapterExtractor): @@ -60,3 +64,60 @@ class MangafoxChapterExtractor(ChapterExtractor): pnum += 2 page = self.request("{}/{}.html".format(self.urlbase, pnum)).text + + +class MangafoxMangaExtractor(MangaExtractor): + """Extractor for manga from fanfox.net""" + category = "mangafox" + root = "https://m.fanfox.net" + chapterclass = MangafoxChapterExtractor + pattern = BASE_PATTERN + r"(/manga/[^/]+)$" + test = ( + ("https://fanfox.net/manga/kanojo_mo_kanojo", { + "pattern": MangafoxChapterExtractor.pattern, + "count": ">=60", + }), + ("https://mangafox.me/manga/shangri_la_frontier", { + "pattern": MangafoxChapterExtractor.pattern, + "count": ">=45", + }), + ("https://m.fanfox.net/manga/sentai_daishikkaku"), + ) + + def __init__(self, match): + MangaExtractor.__init__(self, match) + + def chapters(self, page): + results = [] + data = self.parse_page(page, {"lang": "en", "language": "English"}) + + pos = page.index('
', '
'), + ("author" , 'Author(s):', '
'), + ), values=data) + data["author"] = text.remove_html(data["author"]) + return data