From de752eb7b1b82d83b6c0b4ee209341df21b63181 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sun, 4 Feb 2024 21:38:46 +0100 Subject: [PATCH] [naverwebtoon] support '/webtoon/' paths for all comics (#5123) --- gallery_dl/extractor/naverwebtoon.py | 7 ++++--- test/results/naverwebtoon.py | 9 +++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gallery_dl/extractor/naverwebtoon.py b/gallery_dl/extractor/naverwebtoon.py index 18eef4fd..4137f5d9 100644 --- a/gallery_dl/extractor/naverwebtoon.py +++ b/gallery_dl/extractor/naverwebtoon.py @@ -79,9 +79,6 @@ class NaverwebtoonComicExtractor(NaverwebtoonBase, Extractor): self.sort = query.get("sort", "ASC") def items(self): - base = "{}/{}/detail?titleId={}&no=".format( - self.root, self.path, self.title_id) - url = self.root + "/api/article/list" headers = { "Accept": "application/json, text/plain, */*", @@ -95,6 +92,10 @@ class NaverwebtoonComicExtractor(NaverwebtoonBase, Extractor): while True: data = self.request(url, headers=headers, params=params).json() + path = data["webtoonLevelCode"].lower().replace("_c", "C", 1) + base = "{}/{}/detail?titleId={}&no=".format( + self.root, path, data["titleId"]) + for article in data["articleList"]: article["_extractor"] = NaverwebtoonEpisodeExtractor yield Message.Queue, base + str(article["no"]), article diff --git a/test/results/naverwebtoon.py b/test/results/naverwebtoon.py index ba5ca97e..179f85b4 100644 --- a/test/results/naverwebtoon.py +++ b/test/results/naverwebtoon.py @@ -95,6 +95,15 @@ __tests__ = ( "#count" : 32, }, +{ + "#url" : "https://comic.naver.com/webtoon/list?titleId=765124", + "#comment" : "/webtoon/ path for 'challenge' comic (#5123)", + "#category": ("", "naverwebtoon", "comic"), + "#class" : naverwebtoon.NaverwebtoonComicExtractor, + "#range" : "1", + "#urls" : "https://comic.naver.com/challenge/detail?titleId=765124&no=1", +}, + { "#url" : "https://comic.naver.com/challenge/list?titleId=765124", "#category": ("", "naverwebtoon", "comic"),