diff --git a/gallery_dl/extractor/readcomiconline.py b/gallery_dl/extractor/readcomiconline.py index e1c7df3b..f6f6e91b 100644 --- a/gallery_dl/extractor/readcomiconline.py +++ b/gallery_dl/extractor/readcomiconline.py @@ -48,12 +48,8 @@ class ReadcomiconlineIssueExtractor(ReadcomiconlineBase, ChapterExtractor): pattern = BASE_PATTERN + r"(/Comic/[^/?#]+/[^/?#]+\?)([^#]+)" example = "https://readcomiconline.li/Comic/TITLE/Issue-123?id=12345" - def __init__(self, match): - ChapterExtractor.__init__(self, match) - self.params = match[2] - def _init(self): - params = text.parse_query(self.params) + params = text.parse_query(self.groups[1]) quality = self.config("quality") if quality is None or quality == "auto": @@ -61,8 +57,9 @@ class ReadcomiconlineIssueExtractor(ReadcomiconlineBase, ChapterExtractor): params["quality"] = "hq" else: params["quality"] = str(quality) + params["readType"] = "0" # force "One page" Reading mode (#7890) - self.page_url += "&".join(k + "=" + v for k, v in params.items()) + self.page_url += "&".join(f"{k}={v}" for k, v in params.items()) self.issue_id = params.get("id") def metadata(self, page): diff --git a/test/results/readcomiconline.py b/test/results/readcomiconline.py index 0f316a7c..ba85e4fa 100644 --- a/test/results/readcomiconline.py +++ b/test/results/readcomiconline.py @@ -10,25 +10,52 @@ from gallery_dl.extractor import readcomiconline __tests__ = ( { "#url" : "https://readcomiconline.li/Comic/W-i-t-c-h/Issue-130?id=22289", - "#category": ("", "readcomiconline", "issue"), "#class" : readcomiconline.ReadcomiconlineIssueExtractor, "#pattern" : r"https://2\.bp\.blogspot\.com/[\w-]+=s0\?.+", "#count" : 36, "#sha1_metadata": "2d9ec81ce1b11fac06ebf96ce33cdbfca0e85eb5", + + "comic" : "W.i.t.c.h.", + "count" : 36, + "extension" : "", + "filename" : str, + "issue" : "130", + "issue_id" : 22289, + "lang" : "en", + "language" : "English", + "page" : range(1, 36), +}, + +{ + "#url" : "https://readcomiconline.li/Comic/Captain-Planet/Issue-1?id=238698&s=&readType=1", + "#comment" : "'One page' Reading mode (#7890)", + "#class" : readcomiconline.ReadcomiconlineIssueExtractor, + "#pattern" : r"https://2\.bp\.blogspot\.com/pw/[\w-]+=s0\?.+", + "#count" : 31, + + "comic" : "Captain Planet", + "count" : 31, + "extension" : "", + "filename" : str, + "issue" : "1", + "issue_id" : 238698, + "lang" : "en", + "language" : "English", + "page" : range(1, 31), }, { "#url" : "https://readcomiconline.li/Comic/W-i-t-c-h", - "#category": ("", "readcomiconline", "comic"), "#class" : readcomiconline.ReadcomiconlineComicExtractor, + "#pattern" : readcomiconline.ReadcomiconlineIssueExtractor.pattern, "#sha1_url" : "74eb8b9504b4084fcc9367b341300b2c52260918", "#sha1_metadata": "574051aaf7a5c92dafed9e94baa40a1a93db5c90", }, { "#url" : "https://readcomiconline.to/Comic/Bazooka-Jules", - "#category": ("", "readcomiconline", "comic"), "#class" : readcomiconline.ReadcomiconlineComicExtractor, + "#pattern" : readcomiconline.ReadcomiconlineIssueExtractor.pattern, "#sha1_url" : "2f66a467a772df4d4592e97a059ddbc3e8991799", "#sha1_metadata": "9563a19454e1b4e0da5b7a28112bf00a3e8069a8", },