[naver] change categories (#7746)

- 'naver'        -> 'naver-blog'
- 'chzzk'        -> 'naver-chzzk'
- 'naverwebtoon' -> 'naver-webtoon'
This commit is contained in:
Mike Fährmann
2025-07-02 19:49:41 +02:00
parent a4fb9e6d33
commit e7922ababd
14 changed files with 134 additions and 104 deletions

View File

@@ -1778,16 +1778,6 @@ Description
* ``false``: Match only URLs with known TLDs * ``false``: Match only URLs with known TLDs
extractor.chzzk.offset
----------------------
Type
``integer``
Default
``0``
Description
Custom ``offset`` starting value when paginating over comments.
extractor.cien.files extractor.cien.files
-------------------- --------------------
Type Type
@@ -3634,8 +3624,8 @@ Description
Note: Not supported by all ``moebooru`` instances. Note: Not supported by all ``moebooru`` instances.
extractor.naver.videos extractor.naver-blog.videos
---------------------- ---------------------------
Type Type
``bool`` ``bool``
Default Default
@@ -3644,6 +3634,16 @@ Description
Download videos. Download videos.
extractor.naver-chzzk.offset
----------------------------
Type
``integer``
Default
``0``
Description
Custom ``offset`` starting value when paginating over comments.
extractor.newgrounds.flash extractor.newgrounds.flash
-------------------------- --------------------------
Type Type
@@ -7692,7 +7692,10 @@ Description
{ {
"coomer" : "coomerparty", "coomer" : "coomerparty",
"kemono" : "kemonoparty", "kemono" : "kemonoparty",
"schalenetwork": "koharu" "schalenetwork": "koharu",
"naver-chzzk" : "chzzk",
"naver-blog" : "naver",
"naver-webtoon": "naverwebtoon"
} }
@@ -7704,9 +7707,12 @@ Default
.. code:: json .. code:: json
{ {
"coomerparty": "coomer", "coomerparty" : "coomer",
"kemonoparty": "kemono", "kemonoparty" : "kemono",
"koharu" : "schalenetwork" "koharu" : "schalenetwork",
"chzzk" : "naver-chzzk",
"naver" : "naver-blog",
"naverwebtoon": "naver-webtoon"
} }
Description Description
Duplicate the configuration settings of extractor `categories` Duplicate the configuration settings of extractor `categories`

View File

@@ -90,9 +90,12 @@
"category-map": {}, "category-map": {},
"config-map": { "config-map": {
"coomerparty": "coomer", "coomerparty" : "coomer",
"kemonoparty": "kemono", "kemonoparty" : "kemono",
"koharu" : "schalenetwork" "koharu" : "schalenetwork",
"chzzk" : "naver-chzzk",
"naver" : "naver-blog",
"naverwebtoon": "naver-webtoon"
}, },
@@ -182,10 +185,6 @@
"endpoint": "/api/_001_v2", "endpoint": "/api/_001_v2",
"tlds": false "tlds": false
}, },
"chzzk":
{
"offset": 0
},
"cien": "cien":
{ {
"sleep-request": "1.0-2.0", "sleep-request": "1.0-2.0",
@@ -456,10 +455,14 @@
"username": "", "username": "",
"password": "" "password": ""
}, },
"naver": "naver-blog":
{ {
"videos": true "videos": true
}, },
"naver-chzzk":
{
"offset": 0
},
"newgrounds": "newgrounds":
{ {
"username": "", "username": "",

View File

@@ -133,7 +133,7 @@
500k or 2.5M) 500k or 2.5M)
--filesize-max SIZE Do not download files larger than SIZE (e.g. --filesize-max SIZE Do not download files larger than SIZE (e.g.
500k or 2.5M) 500k or 2.5M)
--download-archive FILE Record all downloaded or skipped files in FILE --download-archive FILE Record successfully downloaded files in FILE
and skip downloading any file already in it and skip downloading any file already in it
--range RANGE Index range(s) specifying which files to --range RANGE Index range(s) specifying which files to
download. These can be either a constant value, download. These can be either a constant value,

View File

@@ -170,8 +170,8 @@ Consider all listed sites to potentially be NSFW.
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td>Chzzk</td> <td>CHZZK</td>
<td>https://chzzk.naver.com</td> <td>https://chzzk.naver.com/</td>
<td>Comments, Communities</td> <td>Comments, Communities</td>
<td></td> <td></td>
</tr> </tr>
@@ -626,13 +626,13 @@ Consider all listed sites to potentially be NSFW.
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td>Naver</td> <td>Naver Blog</td>
<td>https://blog.naver.com/</td> <td>https://blog.naver.com/</td>
<td>Blogs, Posts</td> <td>Blogs, Posts</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td>NaverWebtoon</td> <td>Naver Webtoon</td>
<td>https://comic.naver.com/</td> <td>https://comic.naver.com/</td>
<td>Comics, Episodes</td> <td>Comics, Episodes</td>
<td></td> <td></td>
@@ -836,7 +836,7 @@ Consider all listed sites to potentially be NSFW.
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td>rule #34</td> <td>Rule 34</td>
<td>https://rule34.paheal.net/</td> <td>https://rule34.paheal.net/</td>
<td>Posts, Tag Searches</td> <td>Posts, Tag Searches</td>
<td></td> <td></td>
@@ -1104,7 +1104,7 @@ Consider all listed sites to potentially be NSFW.
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td>Webtoon</td> <td>WEBTOON</td>
<td>https://www.webtoons.com/</td> <td>https://www.webtoons.com/</td>
<td>Artists, Comics, Episodes</td> <td>Artists, Comics, Episodes</td>
<td></td> <td></td>

View File

@@ -323,6 +323,9 @@ def main():
"coomer" : "coomerparty", "coomer" : "coomerparty",
"kemono" : "kemonoparty", "kemono" : "kemonoparty",
"schalenetwork": "koharu", "schalenetwork": "koharu",
"naver-blog" : "naver",
"naver-chzzk" : "chzzk",
"naver-webtoon": "naverwebtoon",
} }
from .extractor import common from .extractor import common
common.CATEGORY_MAP = catmap common.CATEGORY_MAP = catmap

View File

@@ -169,9 +169,12 @@ def remap_categories():
cmap = opts.get("config-map") cmap = opts.get("config-map")
if cmap is None: if cmap is None:
cmap = ( cmap = (
("coomerparty", "coomer"), ("coomerparty" , "coomer"),
("kemonoparty", "kemono"), ("kemonoparty" , "kemono"),
("koharu" , "schalenetwork"), ("koharu" , "schalenetwork"),
("naver" , "naver-blog"),
("chzzk" , "naver-chzzk"),
("naverwebtoon", "naver-webtoon"),
) )
elif not cmap: elif not cmap:
return return

View File

@@ -38,7 +38,6 @@ modules = [
"bunkr", "bunkr",
"catbox", "catbox",
"chevereto", "chevereto",
"chzzk",
"cien", "cien",
"civitai", "civitai",
"comick", "comick",
@@ -117,7 +116,8 @@ modules = [
"motherless", "motherless",
"myhentaigallery", "myhentaigallery",
"myportfolio", "myportfolio",
"naver", "naverblog",
"naverchzzk",
"naverwebtoon", "naverwebtoon",
"nekohouse", "nekohouse",
"newgrounds", "newgrounds",

View File

@@ -14,13 +14,13 @@ import datetime
import time import time
class NaverBase(): class NaverBlogBase():
"""Base class for naver extractors""" """Base class for blog.naver.com extractors"""
category = "naver" category = "naver-blog"
root = "https://blog.naver.com" root = "https://blog.naver.com"
class NaverPostExtractor(NaverBase, GalleryExtractor): class NaverBlogPostExtractor(NaverBlogBase, GalleryExtractor):
"""Extractor for blog posts on blog.naver.com""" """Extractor for blog posts on blog.naver.com"""
subcategory = "post" subcategory = "post"
filename_fmt = "{num:>03}.{extension}" filename_fmt = "{num:>03}.{extension}"
@@ -123,7 +123,7 @@ class NaverPostExtractor(NaverBase, GalleryExtractor):
files.append((video["source"], video)) files.append((video["source"], video))
class NaverBlogExtractor(NaverBase, Extractor): class NaverBlogBlogExtractor(NaverBlogBase, Extractor):
"""Extractor for a user's blog on blog.naver.com""" """Extractor for a user's blog on blog.naver.com"""
subcategory = "blog" subcategory = "blog"
categorytransfer = True categorytransfer = True
@@ -165,7 +165,7 @@ class NaverBlogExtractor(NaverBase, Extractor):
for post in data["postList"]: for post in data["postList"]:
post["url"] = (f"{self.root}/PostView.nhn?blogId=" post["url"] = (f"{self.root}/PostView.nhn?blogId="
f"{self.blog_id}&logNo={post['logNo']}") f"{self.blog_id}&logNo={post['logNo']}")
post["_extractor"] = NaverPostExtractor post["_extractor"] = NaverBlogPostExtractor
yield Message.Queue, post["url"], post yield Message.Queue, post["url"], post
if not data["hasNextPage"]: if not data["hasNextPage"]:

View File

@@ -4,15 +4,15 @@
# it under the terms of the GNU General Public License version 2 as # it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation. # published by the Free Software Foundation.
"""Extractors for https://chzzk.naver.com""" """Extractors for https://chzzk.naver.com/"""
from .common import Extractor, Message from .common import Extractor, Message
from .. import text, util from .. import text, util
class ChzzkExtractor(Extractor): class NaverChzzkExtractor(Extractor):
"""Base class for chzzk extractors""" """Base class for chzzk.naver.com extractors"""
category = "chzzk" category = "naver-chzzk"
filename_fmt = "{uid}_{id}_{num}.{extension}" filename_fmt = "{uid}_{id}_{num}.{extension}"
directory_fmt = ("{category}", "{user[userNickname]}") directory_fmt = ("{category}", "{user[userNickname]}")
archive_fmt = "{uid}_{id}_{num}" archive_fmt = "{uid}_{id}_{num}"
@@ -47,7 +47,7 @@ class ChzzkExtractor(Extractor):
yield Message.Url, url, text.nameext_from_url(url, data) yield Message.Url, url, text.nameext_from_url(url, data)
class ChzzkCommentExtractor(ChzzkExtractor): class NaverChzzkCommentExtractor(NaverChzzkExtractor):
"""Extractor for individual comment from chzzk.naver.com""" """Extractor for individual comment from chzzk.naver.com"""
subcategory = "comment" subcategory = "comment"
pattern = r"(?:https?://)?chzzk\.naver\.com/(\w+)/community/detail/(\d+)" pattern = r"(?:https?://)?chzzk\.naver\.com/(\w+)/community/detail/(\d+)"
@@ -59,7 +59,7 @@ class ChzzkCommentExtractor(ChzzkExtractor):
return ({"comment": res["comment"], "user": res["user"]},) return ({"comment": res["comment"], "user": res["user"]},)
class ChzzkCommunityExtractor(ChzzkExtractor): class NaverChzzkCommunityExtractor(NaverChzzkExtractor):
"""Extractor for comments from chzzk.naver.com""" """Extractor for comments from chzzk.naver.com"""
subcategory = "community" subcategory = "community"
pattern = r"(?:https?://)?chzzk\.naver\.com/(\w+)/community" pattern = r"(?:https?://)?chzzk\.naver\.com/(\w+)/community"

View File

@@ -16,13 +16,13 @@ BASE_PATTERN = (r"(?:https?://)?comic\.naver\.com"
r"/(webtoon|challenge|bestChallenge)") r"/(webtoon|challenge|bestChallenge)")
class NaverwebtoonBase(): class NaverWebtoonBase():
"""Base class for naver webtoon extractors""" """Base class for comic.naver.com extractors"""
category = "naverwebtoon" category = "naver-webtoon"
root = "https://comic.naver.com" root = "https://comic.naver.com"
class NaverwebtoonEpisodeExtractor(NaverwebtoonBase, GalleryExtractor): class NaverWebtoonEpisodeExtractor(NaverWebtoonBase, GalleryExtractor):
subcategory = "episode" subcategory = "episode"
directory_fmt = ("{category}", "{comic}") directory_fmt = ("{category}", "{comic}")
filename_fmt = "{episode:>03}-{num:>02}.{extension}" filename_fmt = "{episode:>03}-{num:>02}.{extension}"
@@ -63,7 +63,7 @@ class NaverwebtoonEpisodeExtractor(NaverwebtoonBase, GalleryExtractor):
] ]
class NaverwebtoonComicExtractor(NaverwebtoonBase, Extractor): class NaverWebtoonComicExtractor(NaverWebtoonBase, Extractor):
subcategory = "comic" subcategory = "comic"
categorytransfer = True categorytransfer = True
pattern = BASE_PATTERN + r"/list(?:\.nhn)?\?([^#]+)" pattern = BASE_PATTERN + r"/list(?:\.nhn)?\?([^#]+)"
@@ -95,7 +95,7 @@ class NaverwebtoonComicExtractor(NaverwebtoonBase, Extractor):
base = f"{self.root}/{path}/detail?titleId={data['titleId']}&no=" base = f"{self.root}/{path}/detail?titleId={data['titleId']}&no="
for article in data["articleList"]: for article in data["articleList"]:
article["_extractor"] = NaverwebtoonEpisodeExtractor article["_extractor"] = NaverWebtoonEpisodeExtractor
yield Message.Queue, base + str(article["no"]), article yield Message.Queue, base + str(article["no"]), article
params["page"] = data["pageInfo"]["nextPage"] params["page"] = data["pageInfo"]["nextPage"]

View File

@@ -109,14 +109,16 @@ CATEGORY_MAP = {
"myhentaigallery": "My Hentai Gallery", "myhentaigallery": "My Hentai Gallery",
"myportfolio" : "Adobe Portfolio", "myportfolio" : "Adobe Portfolio",
"natomanga" : "MangaNato", "natomanga" : "MangaNato",
"naverwebtoon" : "NaverWebtoon", "naver-blog" : "Naver Blog",
"naver-chzzk" : "CHZZK",
"naver-webtoon" : "Naver Webtoon",
"nelomanga" : "MangaNelo", "nelomanga" : "MangaNelo",
"nhentai" : "nhentai", "nhentai" : "nhentai",
"nijie" : "nijie", "nijie" : "nijie",
"nozomi" : "Nozomi.la", "nozomi" : "Nozomi.la",
"nsfwalbum" : "NSFWalbum.com", "nsfwalbum" : "NSFWalbum.com",
"nudostar" : "NudoStar.TV", "nudostar" : "NudoStar.TV",
"paheal" : "rule #34", "paheal" : "Rule 34",
"photovogue" : "PhotoVogue", "photovogue" : "PhotoVogue",
"pidgiwiki" : "PidgiWiki", "pidgiwiki" : "PidgiWiki",
"pixeldrain" : "pixeldrain", "pixeldrain" : "pixeldrain",
@@ -163,7 +165,7 @@ CATEGORY_MAP = {
"vsco" : "VSCO", "vsco" : "VSCO",
"wallpapercave" : "Wallpaper Cave", "wallpapercave" : "Wallpaper Cave",
"webmshare" : "webmshare", "webmshare" : "webmshare",
"webtoons" : "Webtoon", "webtoons" : "WEBTOON",
"weebcentral" : "Weeb Central", "weebcentral" : "Weeb Central",
"wikiart" : "WikiArt.org", "wikiart" : "WikiArt.org",
"wikigg" : "wiki.gg", "wikigg" : "wiki.gg",

View File

@@ -4,31 +4,58 @@
# it under the terms of the GNU General Public License version 2 as # it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation. # published by the Free Software Foundation.
from gallery_dl.extractor import naver from gallery_dl.extractor import naverblog
__tests__ = ( __tests__ = (
{ {
"#url" : "https://blog.naver.com/rlfqjxm0/221430673006", "#url" : "https://blog.naver.com/rlfqjxm0/221430673006",
"#category": ("", "naver", "post"), "#class" : naverblog.NaverBlogPostExtractor,
"#class" : naver.NaverPostExtractor,
"#sha1_url" : "6c694f3aced075ed5e9511f1e796d14cb26619cc", "#sha1_url" : "6c694f3aced075ed5e9511f1e796d14cb26619cc",
"#sha1_metadata": "a6e23d19afbee86b37d6e7ad934650c379d2cb1e",
"count" : 23,
"num" : range(1, 23),
"extension" : {"jpg", "png"},
"filename" : str,
"blog" : {
"id" : "rlfqjxm0",
"num" : 43030507,
"user": "에나",
},
"post" : {
"date" : "dt:2018-12-30 23:23:00",
"description": "-",
"num" : 221430673006,
"title" : "그림",
},
}, },
{ {
"#url" : "https://blog.naver.com/PostView.nhn?blogId=rlfqjxm0&logNo=221430673006", "#url" : "https://blog.naver.com/PostView.nhn?blogId=rlfqjxm0&logNo=221430673006",
"#category": ("", "naver", "post"), "#class" : naverblog.NaverBlogPostExtractor,
"#class" : naver.NaverPostExtractor,
"#sha1_url" : "6c694f3aced075ed5e9511f1e796d14cb26619cc", "#sha1_url" : "6c694f3aced075ed5e9511f1e796d14cb26619cc",
"#sha1_metadata": "a6e23d19afbee86b37d6e7ad934650c379d2cb1e",
"count" : 23,
"num" : range(1, 23),
"extension" : {"jpg", "png"},
"filename" : str,
"blog" : {
"id" : "rlfqjxm0",
"num" : 43030507,
"user": "에나",
},
"post" : {
"date" : "dt:2018-12-30 23:23:00",
"description": "-",
"num" : 221430673006,
"title" : "그림",
},
}, },
{ {
"#url" : "https://blog.naver.com/PostView.nhn?blogId=rlfqjxm0&logNo=70161391809", "#url" : "https://blog.naver.com/PostView.nhn?blogId=rlfqjxm0&logNo=70161391809",
"#comment" : "filenames in EUC-KR encoding (#5126)", "#comment" : "filenames in EUC-KR encoding (#5126)",
"#category": ("", "naver", "post"), "#class" : naverblog.NaverBlogPostExtractor,
"#class" : naver.NaverPostExtractor,
"#results": ( "#results": (
"https://blogfiles.pstatic.net/20130305_23/ping9303_1362411028002Dpz9z_PNG/1_사본.png", "https://blogfiles.pstatic.net/20130305_23/ping9303_1362411028002Dpz9z_PNG/1_사본.png",
"https://blogfiles.pstatic.net/20130305_46/rlfqjxm0_1362473322580x33zi_PNG/오마갓합작.png", "https://blogfiles.pstatic.net/20130305_46/rlfqjxm0_1362473322580x33zi_PNG/오마갓합작.png",
@@ -54,8 +81,7 @@ __tests__ = (
{ {
"#url" : "https://blog.naver.com/jws790103/223239681955", "#url" : "https://blog.naver.com/jws790103/223239681955",
"#comment" : "videos", "#comment" : "videos",
"#category": ("", "naver", "post"), "#class" : naverblog.NaverBlogPostExtractor,
"#class" : naver.NaverPostExtractor,
"#pattern" : ( "#pattern" : (
r"https://blogfiles.pstatic.net/MjAyMzA5MjVfMTMy/MDAxNjk1NjQ0MzI4OTE3.UxgvxTesk7Y88OWGvPMwQhbmCPp6mPA_C-5l5lJggyEg.B0DbxNEzz3DxRJtShiiBHDLzLQSCFDo_Bp6c-bcMDiog.JPEG.jws790103/20230925%EF%BC%BF080218.jpg", r"https://blogfiles.pstatic.net/MjAyMzA5MjVfMTMy/MDAxNjk1NjQ0MzI4OTE3.UxgvxTesk7Y88OWGvPMwQhbmCPp6mPA_C-5l5lJggyEg.B0DbxNEzz3DxRJtShiiBHDLzLQSCFDo_Bp6c-bcMDiog.JPEG.jws790103/20230925%EF%BC%BF080218.jpg",
r"https://blogfiles.pstatic.net/MjAyMzA5MjVfMjAz/MDAxNjk1NjQ0MzI4OTA5.Kd4VzqHhhrgby7rCA1iPdBX6f_k2DPEBnlRdOWD-kPgg.U0C1lmlKVMZMA4hhhs69nolZwCZ4Plme4KVbNfhezhkg.JPEG.jws790103/20230925%EF%BC%BF081103.jpg", r"https://blogfiles.pstatic.net/MjAyMzA5MjVfMjAz/MDAxNjk1NjQ0MzI4OTA5.Kd4VzqHhhrgby7rCA1iPdBX6f_k2DPEBnlRdOWD-kPgg.U0C1lmlKVMZMA4hhhs69nolZwCZ4Plme4KVbNfhezhkg.JPEG.jws790103/20230925%EF%BC%BF081103.jpg",
@@ -85,8 +111,7 @@ __tests__ = (
{ {
"#url" : "https://blog.naver.com/jws790103/223239681955", "#url" : "https://blog.naver.com/jws790103/223239681955",
"#comment" : "'videos' option", "#comment" : "'videos' option",
"#category": ("", "naver", "post"), "#class" : naverblog.NaverBlogPostExtractor,
"#class" : naver.NaverPostExtractor,
"#options" : {"videos": False}, "#options" : {"videos": False},
"#results": ( "#results": (
"https://blogfiles.pstatic.net/MjAyMzA5MjVfMTMy/MDAxNjk1NjQ0MzI4OTE3.UxgvxTesk7Y88OWGvPMwQhbmCPp6mPA_C-5l5lJggyEg.B0DbxNEzz3DxRJtShiiBHDLzLQSCFDo_Bp6c-bcMDiog.JPEG.jws790103/20230925%EF%BC%BF080218.jpg", "https://blogfiles.pstatic.net/MjAyMzA5MjVfMTMy/MDAxNjk1NjQ0MzI4OTE3.UxgvxTesk7Y88OWGvPMwQhbmCPp6mPA_C-5l5lJggyEg.B0DbxNEzz3DxRJtShiiBHDLzLQSCFDo_Bp6c-bcMDiog.JPEG.jws790103/20230925%EF%BC%BF080218.jpg",
@@ -103,32 +128,28 @@ __tests__ = (
{ {
"#url" : "https://blog.naver.com/PostView.naver?blogId=rlfqjxm0&logNo=221430673006", "#url" : "https://blog.naver.com/PostView.naver?blogId=rlfqjxm0&logNo=221430673006",
"#category": ("", "naver", "post"), "#class" : naverblog.NaverBlogPostExtractor,
"#class" : naver.NaverPostExtractor,
}, },
{ {
"#url" : "https://blog.naver.com/gukjung", "#url" : "https://blog.naver.com/gukjung",
"#category": ("", "naver", "blog"), "#class" : naverblog.NaverBlogBlogExtractor,
"#class" : naver.NaverBlogExtractor, "#pattern" : naverblog.NaverBlogPostExtractor.pattern,
"#pattern" : naver.NaverPostExtractor.pattern,
"#range" : "1-12", "#range" : "1-12",
"#count" : 12, "#count" : 12,
}, },
{ {
"#url" : "https://blog.naver.com/PostList.nhn?blogId=gukjung", "#url" : "https://blog.naver.com/PostList.nhn?blogId=gukjung",
"#category": ("", "naver", "blog"), "#class" : naverblog.NaverBlogBlogExtractor,
"#class" : naver.NaverBlogExtractor, "#pattern" : naverblog.NaverBlogPostExtractor.pattern,
"#pattern" : naver.NaverPostExtractor.pattern,
"#range" : "1-12", "#range" : "1-12",
"#count" : 12, "#count" : 12,
}, },
{ {
"#url" : "https://blog.naver.com/PostList.naver?blogId=gukjung", "#url" : "https://blog.naver.com/PostList.naver?blogId=gukjung",
"#category": ("", "naver", "blog"), "#class" : naverblog.NaverBlogBlogExtractor,
"#class" : naver.NaverBlogExtractor,
}, },
) )

View File

@@ -4,14 +4,14 @@
# it under the terms of the GNU General Public License version 2 as # it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation. # published by the Free Software Foundation.
from gallery_dl.extractor import chzzk from gallery_dl.extractor import naverchzzk
__tests__ = ( __tests__ = (
{ {
"#url" : "https://chzzk.naver.com/f30b95fc9af53a75b781d7d3dd933892/community/detail/13393754", "#url" : "https://chzzk.naver.com/f30b95fc9af53a75b781d7d3dd933892/community/detail/13393754",
"#class" : chzzk.ChzzkCommentExtractor, "#class" : naverchzzk.NaverChzzkCommentExtractor,
"#results": ( "#results": (
"https://nng-phinf.pstatic.net/MjAyNDA3MDlfNDgg/MDAxNzIwNTMzNzg2MDUx.0K9XrEW9CCSd2b7VdQHf8RGWkHAUsqEhNnLlleA11SUg.ZLx2V3gJPZR-kzrMY3E17wbu1ZmzYjitrEKmM_ykeWkg.PNG/tftyt.png", "https://nng-phinf.pstatic.net/MjAyNDA3MDlfNDgg/MDAxNzIwNTMzNzg2MDUx.0K9XrEW9CCSd2b7VdQHf8RGWkHAUsqEhNnLlleA11SUg.ZLx2V3gJPZR-kzrMY3E17wbu1ZmzYjitrEKmM_ykeWkg.PNG/tftyt.png",
), ),
@@ -35,7 +35,7 @@ __tests__ = (
{ {
"#url" : "https://chzzk.naver.com/f30b95fc9af53a75b781d7d3dd933892/community/detail/20273040", "#url" : "https://chzzk.naver.com/f30b95fc9af53a75b781d7d3dd933892/community/detail/20273040",
"#class" : chzzk.ChzzkCommentExtractor, "#class" : naverchzzk.NaverChzzkCommentExtractor,
"#results": ( "#results": (
"https://nng-phinf.pstatic.net/MjAyNTA2MTNfMTUw/MDAxNzQ5ODI1NjkyMzgx.8bsZ9moAfpuK3dqhHBxdd_CQdSuP5-MRrFgyJGDfdtEg.cs9HcI9BxBVXGUqJQhsUSGyOYvB3vj2itDB-arpvmokg.GIF/%EB%AC%BC%EC%9E%90%EB%AF%B8%EB%84%A4a.gif", "https://nng-phinf.pstatic.net/MjAyNTA2MTNfMTUw/MDAxNzQ5ODI1NjkyMzgx.8bsZ9moAfpuK3dqhHBxdd_CQdSuP5-MRrFgyJGDfdtEg.cs9HcI9BxBVXGUqJQhsUSGyOYvB3vj2itDB-arpvmokg.GIF/%EB%AC%BC%EC%9E%90%EB%AF%B8%EB%84%A4a.gif",
"https://nng-phinf.pstatic.net/MjAyNTA2MTNfMTAg/MDAxNzQ5ODI1NzA2NDk4.8PHxVU-4N8UE6mnDoDRhTMYoao9p0niz08DPQEqm2pog.C4KZL_RiK-jGlfKgoXJS5LdO3BDZUuPDCSsaqttE6Jwg.GIF/%EB%AC%BC%EC%9E%90%EB%AF%B8%EB%84%A4ab.gif", "https://nng-phinf.pstatic.net/MjAyNTA2MTNfMTAg/MDAxNzQ5ODI1NzA2NDk4.8PHxVU-4N8UE6mnDoDRhTMYoao9p0niz08DPQEqm2pog.C4KZL_RiK-jGlfKgoXJS5LdO3BDZUuPDCSsaqttE6Jwg.GIF/%EB%AC%BC%EC%9E%90%EB%AF%B8%EB%84%A4ab.gif",
@@ -65,14 +65,14 @@ __tests__ = (
{ {
"#url" : "https://chzzk.naver.com/f30b95fc9af53a75b781d7d3dd933892/community", "#url" : "https://chzzk.naver.com/f30b95fc9af53a75b781d7d3dd933892/community",
"#class": chzzk.ChzzkCommunityExtractor, "#class": naverchzzk.NaverChzzkCommunityExtractor,
"#range": "1-50", "#range": "1-50",
"#count": 50, "#count": 50,
}, },
{ {
"#url" : "https://chzzk.naver.com/f30b95fc9af53a75b781d7d3dd933892/community", "#url" : "https://chzzk.naver.com/f30b95fc9af53a75b781d7d3dd933892/community",
"#class" : chzzk.ChzzkCommunityExtractor, "#class" : naverchzzk.NaverChzzkCommunityExtractor,
"#options": {"offset": 50}, "#options": {"offset": 50},
"#range" : "1-50", "#range" : "1-50",
"#count" : 50, "#count" : 50,

View File

@@ -10,8 +10,7 @@ from gallery_dl.extractor import naverwebtoon
__tests__ = ( __tests__ = (
{ {
"#url" : "https://comic.naver.com/webtoon/detail?titleId=26458&no=1&weekday=tue", "#url" : "https://comic.naver.com/webtoon/detail?titleId=26458&no=1&weekday=tue",
"#category": ("", "naverwebtoon", "episode"), "#class" : naverwebtoon.NaverWebtoonEpisodeExtractor,
"#class" : naverwebtoon.NaverwebtoonEpisodeExtractor,
"#count" : 14, "#count" : 14,
"#sha1_url" : "47a956ba8c7a837213d5985f50c569fcff986f75", "#sha1_url" : "47a956ba8c7a837213d5985f50c569fcff986f75",
"#sha1_content": "3806b6e8befbb1920048de9888dfce6220f69a60", "#sha1_content": "3806b6e8befbb1920048de9888dfce6220f69a60",
@@ -34,8 +33,7 @@ __tests__ = (
{ {
"#url" : "https://comic.naver.com/challenge/detail?titleId=765124&no=1", "#url" : "https://comic.naver.com/challenge/detail?titleId=765124&no=1",
"#category": ("", "naverwebtoon", "episode"), "#class" : naverwebtoon.NaverWebtoonEpisodeExtractor,
"#class" : naverwebtoon.NaverwebtoonEpisodeExtractor,
"#pattern" : r"https://image-comic\.pstatic\.net/user_contents_data/challenge_comic/2021/01/19/342586/upload_7149856273586337846\.jpeg", "#pattern" : r"https://image-comic\.pstatic\.net/user_contents_data/challenge_comic/2021/01/19/342586/upload_7149856273586337846\.jpeg",
"#count" : 1, "#count" : 1,
@@ -64,8 +62,7 @@ __tests__ = (
{ {
"#url" : "https://comic.naver.com/bestChallenge/detail?titleId=620732&no=334", "#url" : "https://comic.naver.com/bestChallenge/detail?titleId=620732&no=334",
"#comment" : "empty tags (#5120)", "#comment" : "empty tags (#5120)",
"#category": ("", "naverwebtoon", "episode"), "#class" : naverwebtoon.NaverWebtoonEpisodeExtractor,
"#class" : naverwebtoon.NaverwebtoonEpisodeExtractor,
"#count" : 9, "#count" : 9,
"artist" : [], "artist" : [],
@@ -81,42 +78,37 @@ __tests__ = (
{ {
"#url" : "https://comic.naver.com/bestChallenge/detail.nhn?titleId=771467&no=3", "#url" : "https://comic.naver.com/bestChallenge/detail.nhn?titleId=771467&no=3",
"#category": ("", "naverwebtoon", "episode"), "#class" : naverwebtoon.NaverWebtoonEpisodeExtractor,
"#class" : naverwebtoon.NaverwebtoonEpisodeExtractor,
"#pattern" : r"https://image-comic\.pstatic\.net/user_contents_data/challenge_comic/2021/04/28/345534/upload_3617293622396203109\.jpeg", "#pattern" : r"https://image-comic\.pstatic\.net/user_contents_data/challenge_comic/2021/04/28/345534/upload_3617293622396203109\.jpeg",
"#count" : 1, "#count" : 1,
}, },
{ {
"#url" : "https://comic.naver.com/webtoon/list?titleId=22073", "#url" : "https://comic.naver.com/webtoon/list?titleId=22073",
"#category": ("", "naverwebtoon", "comic"), "#class" : naverwebtoon.NaverWebtoonComicExtractor,
"#class" : naverwebtoon.NaverwebtoonComicExtractor, "#pattern" : naverwebtoon.NaverWebtoonEpisodeExtractor.pattern,
"#pattern" : naverwebtoon.NaverwebtoonEpisodeExtractor.pattern,
"#count" : 32, "#count" : 32,
}, },
{ {
"#url" : "https://comic.naver.com/webtoon/list?titleId=765124", "#url" : "https://comic.naver.com/webtoon/list?titleId=765124",
"#comment" : "/webtoon/ path for 'challenge' comic (#5123)", "#comment" : "/webtoon/ path for 'challenge' comic (#5123)",
"#category": ("", "naverwebtoon", "comic"), "#class" : naverwebtoon.NaverWebtoonComicExtractor,
"#class" : naverwebtoon.NaverwebtoonComicExtractor,
"#range" : "1", "#range" : "1",
"#results" : "https://comic.naver.com/challenge/detail?titleId=765124&no=1", "#results" : "https://comic.naver.com/challenge/detail?titleId=765124&no=1",
}, },
{ {
"#url" : "https://comic.naver.com/challenge/list?titleId=765124", "#url" : "https://comic.naver.com/challenge/list?titleId=765124",
"#category": ("", "naverwebtoon", "comic"), "#class" : naverwebtoon.NaverWebtoonComicExtractor,
"#class" : naverwebtoon.NaverwebtoonComicExtractor, "#pattern" : naverwebtoon.NaverWebtoonEpisodeExtractor.pattern,
"#pattern" : naverwebtoon.NaverwebtoonEpisodeExtractor.pattern,
"#count" : 24, "#count" : 24,
}, },
{ {
"#url" : "https://comic.naver.com/bestChallenge/list.nhn?titleId=789786", "#url" : "https://comic.naver.com/bestChallenge/list.nhn?titleId=789786",
"#category": ("", "naverwebtoon", "comic"), "#class" : naverwebtoon.NaverWebtoonComicExtractor,
"#class" : naverwebtoon.NaverwebtoonComicExtractor, "#pattern" : naverwebtoon.NaverWebtoonEpisodeExtractor.pattern,
"#pattern" : naverwebtoon.NaverwebtoonEpisodeExtractor.pattern,
"#count" : 1, "#count" : 1,
}, },