[webtoons] add 'thumbnails' option (#6468 #7441)

* Update webtoons.py
    Added thumbnail download capability which defaults to false
* Update configuration.rst
    Added documentation for webtoon thumbnail option
* extract thumbnails in GalleryExtractor.assets()
* simplify & fix flake8
* include 'type' in default filenames
* add test
* update docs

---------

Co-authored-by: Mike Fährmann <mike_faehrmann@web.de>
This commit is contained in:
pocketinternet
2025-06-17 18:34:58 +01:00
committed by GitHub
parent 1f429da650
commit 3ea244eebb
4 changed files with 38 additions and 4 deletions

View File

@@ -44,7 +44,7 @@ class WebtoonsEpisodeExtractor(WebtoonsBase, GalleryExtractor):
"""Extractor for an episode on webtoons.com"""
subcategory = "episode"
directory_fmt = ("{category}", "{comic}")
filename_fmt = "{episode_no}-{num:>02}.{extension}"
filename_fmt = "{episode_no}-{num:>02}{type:?-//}.{extension}"
archive_fmt = "{title_no}_{episode_no}_{num}"
pattern = (LANG_PATTERN + r"/([^/?#]+)/([^/?#]+)/[^/?#]+)"
r"/viewer\?([^#'\"]+)")
@@ -59,6 +59,7 @@ class WebtoonsEpisodeExtractor(WebtoonsBase, GalleryExtractor):
self.title_no = params.get("title_no")
self.episode_no = params.get("episode_no")
self.gallery_url = "{}/{}/viewer?{}".format(self.root, path, query)
self.thumbnails = self.config("thumbnails", False)
def metadata(self, page):
extr = text.extract_from(page)
@@ -128,6 +129,13 @@ class WebtoonsEpisodeExtractor(WebtoonsBase, GalleryExtractor):
results.append((url, None))
return results
def assets(self, page):
if self.thumbnails:
active = text.extr(page, 'class="on ', '</a>')
url = text.extr(active, 'data-url="', '"')
url = url.replace("://webtoon-phinf.", "://swebtoon-phinf.")
return ({"url": url, "type": "thumbnail"},)
class WebtoonsComicExtractor(WebtoonsBase, Extractor):
"""Extractor for an entire comic on webtoons.com"""