diff --git a/gallery_dl/extractor/__init__.py b/gallery_dl/extractor/__init__.py index bd830ab5..729f6fe4 100644 --- a/gallery_dl/extractor/__init__.py +++ b/gallery_dl/extractor/__init__.py @@ -12,8 +12,6 @@ from .. import config modules = [ "pixiv", - "exhentai", - "gelbooru", "3dbooru", "4chan", "8chan", @@ -21,7 +19,10 @@ modules = [ "chronos", "danbooru", "deviantart", + "doujinmode", "e621", + "exhentai", + "gelbooru", "hbrowse", "hentai2read", "hentaifoundry", diff --git a/gallery_dl/extractor/doujinmode.py b/gallery_dl/extractor/doujinmode.py new file mode 100644 index 00000000..d81e0c24 --- /dev/null +++ b/gallery_dl/extractor/doujinmode.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- + +# Copyright 2016 Mike Fährmann +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. + +"""Extract images from http://doujinmode.net/""" + +from .common import Extractor, Message +from .. import text +import re + +class DoujinmodeChapterExtractor(Extractor): + + category = "doujinmode" + directory_fmt = ["{category}", "{title}"] + filename_fmt = "{num:>03}.{extension}" + pattern = [r"(?:https?://)?(?:www\.)?doujinmode\.net/(?:hentai/)?mangas/([0-9a-f]{36})"] + url_base = "http://doujinmode.net/mangas/" + + def __init__(self, match): + Extractor.__init__(self) + self.gid = match.group(1) + + def items(self): + data = self.get_job_metadata() + yield Message.Version, 1 + yield Message.Directory, data + for url, image in self.get_images(): + data.update(image) + yield Message.Url, url, data + + def get_job_metadata(self): + """Collect metadata for extractor-job""" + page = self.request(self.url_base + self.gid).text + count, pos = text.extract(page, ' class="manga-count">', '') + title, pos = text.extract(page, '