diff --git a/gallery_dl/extractor/mangashare.py b/gallery_dl/extractor/mangashare.py index 67e2007e..82abd6d1 100644 --- a/gallery_dl/extractor/mangashare.py +++ b/gallery_dl/extractor/mangashare.py @@ -6,13 +6,37 @@ # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. -"""Extract manga pages from http://www.mangashare.com/""" +"""Extract manga-chapters and entire manga from http://www.mangashare.com/""" -from .common import AsynchronousExtractor, Message +from .common import Extractor, AsynchronousExtractor, Message from .. import text -class MangaShareExtractor(AsynchronousExtractor): +class MangaShareMangaExtractor(Extractor): + """Extract all manga-chapters from mangashare""" + category = "mangashare" + directory_fmt = ["{category}", "{manga}", "c{chapter:>03} - {title}"] + filename_fmt = "{manga}_c{chapter:>03}_{page:>03}.{extension}" + pattern = [r"(?:https?://)?read\.mangashare\.com/[^/]+$"] + + def __init__(self, match): + Extractor.__init__(self) + self.url = match.group(0) + + def items(self): + yield Message.Version, 1 + for chapter in self.get_chapters(): + yield Message.Queue, chapter + + def get_chapters(self): + """Return a list of all chapter urls""" + page = self.request(self.url).text + return reversed(list( + text.extract_iter(page, '03} - {title}"] filename_fmt = "{manga}_c{chapter:>03}_{page:>03}.{extension}"