diff --git a/gallery_dl/extractor/spectrumnexus.py b/gallery_dl/extractor/spectrumnexus.py index c4446e5e..a6e38ce1 100644 --- a/gallery_dl/extractor/spectrumnexus.py +++ b/gallery_dl/extractor/spectrumnexus.py @@ -8,16 +8,40 @@ """Extract manga pages from http://www.thespectrum.net/manga_scans/""" -from .common import AsynchronousExtractor, Message +from .common import Extractor, AsynchronousExtractor, Message from .. import text -class SpectrumNexusExtractor(AsynchronousExtractor): +class SpectrumNexusMangaExtractor(Extractor): category = "spectrumnexus" + subcategory = "manga" + pattern = [r"(?:https?://)?view\.thespectrum\.net/series/([^\.]+)\.html$"] + url_base = "http://view.thespectrum.net/series/" + + def __init__(self, match): + Extractor.__init__(self) + self.url = self.url_base + match.group(1) + ".html" + + def items(self): + yield Message.Version, 1 + for chapter in self.get_chapters(): + yield Message.Queue, self.url + "?ch=" + chapter.replace(" ", "+") + + def get_chapters(self): + """Return a list of all chapter identifiers""" + page = self.request(self.url).text + page = text.extract(page, '