diff --git a/README.rst b/README.rst index 79043bd2..c8aa0e9d 100644 --- a/README.rst +++ b/README.rst @@ -45,7 +45,7 @@ Supported Sites mangashare.com, mangastream.com, powermanga.org, raw.senmanga.com, reader.sensescans.com, thespectrum.net * Hentai: - doujinmode.net, exhentai.org, hbrowse.com, hentai2read.com, + exhentai.org, hbrowse.com, hentai2read.com, hentaibox.net, hentaihere.com, hitomi.la, luscious.net, nhentai.net * Japanese: pixiv.net, nijie.info, seiga.nicovideo.jp @@ -55,9 +55,10 @@ Supported Sites * Futaba Channel-like: 4chan.org, 8ch.net * Image Hosts: - chronos.to, coreimg.net, imagebam.com, imagetwist.com, img.yt, imgbox.com, - imgcandy.net, imgchili.net, imgtrex.com, pic-maniac.com, rapidimg.net, - turboimagehost.com + chronos.to, coreimg.net, hosturimage.com, imagebam.com, imageontime.org, + imagetwist.com, img.yt, imgbox.com, imgcandy.net, imgchili.net, + imgclick.net, imgspice.com, imgtrex.com, imgupload.yt, pic-maniac.com, + rapidimg.net, turboimagehost.com Configuration diff --git a/gallery_dl/extractor/__init__.py b/gallery_dl/extractor/__init__.py index 84fec8bb..fee5bfaf 100644 --- a/gallery_dl/extractor/__init__.py +++ b/gallery_dl/extractor/__init__.py @@ -19,7 +19,6 @@ modules = [ "danbooru", "deviantart", "dokireader", - "doujinmode", "dynastyscans", "e621", "exhentai", diff --git a/gallery_dl/extractor/doujinmode.py b/gallery_dl/extractor/doujinmode.py deleted file mode 100644 index c894db6e..00000000 --- a/gallery_dl/extractor/doujinmode.py +++ /dev/null @@ -1,64 +0,0 @@ -# -*- 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): - """Extractor for manga-/doujinshi-chapters from doujinmode.net""" - category = "doujinmode" - subcategory = "chapter" - directory_fmt = ["{category}", "{title}"] - filename_fmt = "{num:>03}.{extension}" - pattern = [(r"(?:https?://)?(?:www\.)?doujinmode\.net/" - r"(?:hentai/|yaoi/|western/)?mangas/([0-9a-f]{36})")] - test = [("http://doujinmode.net/mangas/967836c988a716e9efca06998b7838d09eb5", { - "url": "be5d48a9fd48f09cfcc5d4e51f24bf1100e75502", - "keyword": "fbccd0416f19080dc2e041917aeff721399adf13", - "content": "a041114e2a8af54d42a4a46a69cae4ebf2641cb1", - })] - 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, '

', ' Images List

', pos) - return { - "gallery-id": self.gid, - "title": text.unescape(title), - "count": count, - } - - def get_images(self): - """Collect a list of all images with url and metadata""" - url = self.url_base + "pages_large?manga_uuid=" + self.gid - for page in self.request(url).json(): - pattern = r"(.*/p/([^/]+)/).+(\.(\w+)\?(\d+))" - parts = re.match(pattern, page["image_url"]).groups() - yield parts[0] + "original" + parts[2], { - "num": page["page"], - "image-id": parts[1], - "extension": parts[3], - "timestamp": parts[4], - }