[skeb] implement 'include' option (#6558 #7267)

- split 'user' extractor into 'works' & 'sent-requests' extractors
- use BASE_PATTERN & USER_PATTERN
- use self.groups
This commit is contained in:
Mike Fährmann
2025-08-12 18:43:11 +02:00
parent a143e12c87
commit ab54f71511
6 changed files with 191 additions and 42 deletions

View File

@@ -10,7 +10,6 @@ from gallery_dl.extractor import skeb
__tests__ = (
{
"#url" : "https://skeb.jp/@kanade_cocotte/works/38",
"#category": ("", "skeb", "post"),
"#class" : skeb.SkebPostExtractor,
"#count" : 2,
@@ -20,7 +19,7 @@ __tests__ = (
"num" : range(1, 2),
"client" : {
"avatar_url" : r"re:https://pbs.twimg.com/profile_images/\d+/\w+\.jpg",
"header_url" : r"re:https://pbs.twimg.com/profile_banners/1375007870291300358/\d+/1500x500",
"header_url" : None,
"id" : 1196514,
"name" : str,
"screen_name": "minato_ragi",
@@ -58,8 +57,35 @@ __tests__ = (
{
"#url" : "https://skeb.jp/@kanade_cocotte",
"#category": ("", "skeb", "user"),
"#class" : skeb.SkebUserExtractor,
"#results" : (
"https://skeb.jp/@kanade_cocotte/works",
),
},
{
"#url" : "https://skeb.jp/@kanade_cocotte",
"#class" : skeb.SkebUserExtractor,
"#options" : {"include": "all"},
"#results" : (
"https://skeb.jp/@kanade_cocotte/works",
"https://skeb.jp/@kanade_cocotte/sent-requests",
),
},
{
"#url" : "https://skeb.jp/@kanade_cocotte",
"#class" : skeb.SkebUserExtractor,
"#options" : {"sent-requests": True},
"#results" : (
"https://skeb.jp/@kanade_cocotte/works",
"https://skeb.jp/@kanade_cocotte/sent-requests",
),
},
{
"#url" : "https://skeb.jp/@kanade_cocotte/works",
"#class" : skeb.SkebWorksExtractor,
"#pattern" : r"https://si\.imgix\.net/\w+/uploads/origins/[\w-]+",
"#range" : "1-5",
@@ -67,9 +93,94 @@ __tests__ = (
"num" : int,
},
{
"#url" : "https://skeb.jp/@kanade_cocotte/works",
"#class" : skeb.SkebWorksExtractor,
"#pattern" : r"https://si\.imgix\.net/\w+/uploads/origins/[\w-]+",
"#range" : "1-5",
"count": int,
"num" : int,
},
{
"#url" : "https://skeb.jp/@kanade_cocotte/sent-requests",
"#class" : skeb.SkebSentRequestsExtractor,
},
{
"#url" : "https://skeb.jp/@4ra_su4/sentrequests",
"#class" : skeb.SkebSentRequestsExtractor,
"#pattern" : (
r"https://si.imgix.net/4e44b668/uploads/origins/e42cbd8e-44af-4aaa-a11b-6a174f42202c\?bg=%23fff&auto=format&fm=webp&w=800&s=\w+",
r"https://si.imgix.net/4d30e75e/uploads/origins/6d3bb612-3f45-4d8e-9d31-49dceb3dab11\?bg=%23fff&auto=format&fm=webp&w=800&s=\w+",
),
"anonymous" : False,
"body" : """\
リクエスト失礼致します。
うちの子の福良ことりちゃんhttps://twitter.com/sousaku_suru/status/1404393369564946432https://twitter.com/sousaku_suru/status/1523336440062820354がナース衣装のコスプレをしている作品をご依頼したいですコス衣装にカチューシャについているクローバーが反映されていると嬉しいです。ご検討よろしくお願い致します
https://twitter.com/sousaku_suru/status/1404393369564946432\
""",
"content_category": "preview",
"count" : 2,
"extension" : "",
"file_id" : {950467, 950468},
"file_url" : r"re:https://si.imgix.net/.+",
"filename" : str,
"genre" : "art",
"nsfw" : False,
"num" : range(1, 2),
"post_id" : 802511,
"post_num" : "2",
"post_url" : "https://skeb.jp/@okonimi_hyu/works/2",
"source_body" : None,
"source_thanks" : None,
"thanks" : None,
"translated_body" : False,
"translated_thanks": None,
"tags" : [
"よろしく",
"お願い",
"作品",
"嬉しい",
"うちの子",
"コスプレ",
"カチューシャ",
"ナース",
"クローバー",
"ことりちゃん",
],
"client" : {
"avatar_url" : "https://pbs.twimg.com/profile_images/1916152385107632128/pygB7-jf.jpg",
"header_url" : "https://pbs.twimg.com/profile_banners/1134460426006159360/1717082866/1500x500",
"id" : 2017625,
"name" : "しろえ",
"screen_name": "4ra_su4",
},
"creator" : {
"avatar_url" : "https://pbs.twimg.com/profile_images/1943287378149543937/EaUIMtnM.jpg",
"header_url" : "https://pbs.twimg.com/profile_banners/2931377426/1523678757/1500x500",
"id" : 341737,
"name" : "Hyu@はゆ〜",
"screen_name": "okonimi_hyu",
},
"original" : {
"byte_size" : {18463023, 793631},
"duration" : None,
"extension" : {"psd", "png"},
"frame_rate": None,
"height" : 1754,
"is_movie" : False,
"software" : None,
"transcoder": "image",
"width" : 1275,
},
},
{
"#url" : "https://skeb.jp/search?q=bunny%20tree&t=works",
"#category": ("", "skeb", "search"),
"#class" : skeb.SkebSearchExtractor,
"#count" : ">= 18",
@@ -78,13 +189,11 @@ __tests__ = (
{
"#url" : "https://skeb.jp/@user/following_creators",
"#category": ("", "skeb", "following"),
"#class" : skeb.SkebFollowingExtractor,
},
{
"#url" : "https://skeb.jp/following_users",
"#category": ("", "skeb", "following-users"),
"#class" : skeb.SkebFollowingUsersExtractor,
"#pattern" : skeb.SkebUserExtractor.pattern,
"#auth" : True,