Updated scanner logic to handle thumb VueJS components. Removed uneeded DLSiteWork fields.
This commit is contained in:
@@ -49,10 +49,58 @@ public class VoiceWorkScannerTests
|
||||
result[0].Creators.ShouldBe(["柚木つばめ"]);
|
||||
result[0].Genres.ShouldBe(["体験版"]);
|
||||
result[0].Tags.ShouldBe(["バイノーラル/ダミヘ", "手コキ", "足コキ", "パイズリ", "言葉責め", "焦らし", "乳首責め", "本番なし"]);
|
||||
result[0].Type.ShouldBe(DLSiteWorkType.Released);
|
||||
result[0].Downloads.ShouldBe(1220);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Scan_With_Updated_Japanese_Locale()
|
||||
{
|
||||
string html = await ReadResourceAsync("Japanese-Page-Updated.html");
|
||||
|
||||
IHttpService httpService = Substitute.For<IHttpService>();
|
||||
|
||||
httpService.GetStringAsync(Arg.Any<string>(), CancellationToken.None)
|
||||
.Returns(Task.FromResult(html));
|
||||
|
||||
HtmlLoader loader = new(httpService);
|
||||
JapaneseVoiceWorksScanner scanner = new(loader);
|
||||
|
||||
VoiceWorkScanOptions options = new(
|
||||
PageNumber: 1,
|
||||
PageSize: 100,
|
||||
ExcludeAIGeneratedWorks: true,
|
||||
ExcludePartiallyAIGeneratedWorks: true,
|
||||
ExcludedMakerIds: []
|
||||
);
|
||||
|
||||
var result = await scanner.ScanPageAsync(options, CancellationToken.None);
|
||||
|
||||
result.Count.ShouldBe(2);
|
||||
|
||||
result[0].SalesDate.ShouldBeNull();
|
||||
result[0].ExpectedDate.ShouldBe(new DateOnly(2026, 12, 21));
|
||||
result[0].ProductId.ShouldBe("RJ01536422");
|
||||
result[0].ProductName.ShouldBe("珈琲屋 綴 / いつもいつでも〜Alone with you〜");
|
||||
result[0].Description.ShouldBe("珈琲に特化した喫茶店、喫茶綴、外伝。『珈琲屋 綴』の従業員、綴明日菜が、大好きな珈琲と、貴方との時間を大切に育みます。珈琲に特化した喫茶店、喫茶綴の外伝です。CV:野上菜月様");
|
||||
result[0].Maker.ShouldBe("喫茶綴");
|
||||
result[0].MakerId.ShouldBe("RG36156");
|
||||
result[0].Creators.ShouldBe(["野上菜月"]);
|
||||
result[0].Genres.ShouldBe(["全年齢"]);
|
||||
result[0].Tags.ShouldBe(["ASMR", "癒し", "オールハッピー", "バイノーラル/ダミヘ", "日常/生活", "耳かき"]);
|
||||
// TODO: Wishlist count?
|
||||
|
||||
result[1].SalesDate.ShouldBeNull();
|
||||
result[1].ExpectedDate.ShouldBe(new DateOnly(2026, 12, 21));
|
||||
result[1].ProductId.ShouldBe("RJ01393816");
|
||||
result[1].ProductName.ShouldBe("アダルトグッズショップの店長にオナ禁でオモチャにされる話");
|
||||
result[1].Description.ShouldBe("アダルトグッズショップでダウナーなセンパイと仕事中にオナ禁サポートをしてサボっていたことが店長にバレてしまった。今度はセンパイの詩乃と店長のミチル、2人にオナ禁でオモチャにされることになってしまった。");
|
||||
result[1].Maker.ShouldBe("平たい胸族");
|
||||
result[1].MakerId.ShouldBe("RG01044380");
|
||||
result[1].Creators.ShouldBe([]);
|
||||
result[1].Genres.ShouldBe([]);
|
||||
result[1].Tags.ShouldBe(["ASMR", "バイノーラル/ダミヘ", "色仕掛け", "浮気", "百合", "レズ/女同士", "ツルペタ", "貧乳/微乳"]);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Scan_With_English_Locale()
|
||||
{
|
||||
@@ -88,13 +136,11 @@ public class VoiceWorkScannerTests
|
||||
result[0].Creators.ShouldBe(["Some Creator"]);
|
||||
result[0].Genres.ShouldBe(["Voice", "Trial version"]);
|
||||
result[0].Tags.ShouldBe(["Male Protagonist", "Gal", "Uniform", "Harem", "Big Breasts", "Tanned Skin / Suntan"]);
|
||||
result[0].Type.ShouldBe(DLSiteWorkType.Released);
|
||||
result[0].Downloads.ShouldBe(1000);
|
||||
|
||||
result[1].ExpectedDate.ShouldBe(new DateOnly(2025, 10, 11));
|
||||
result[1].SalesDate.ShouldBeNull();
|
||||
result[1].ProductId.ShouldBe("RJ00000002");
|
||||
result[1].Type.ShouldBe(DLSiteWorkType.Announced);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -132,7 +178,6 @@ public class VoiceWorkScannerTests
|
||||
result[0].Creators.ShouldBe(["沼倉愛美"]);
|
||||
result[0].Genres.ShouldBe(["All Ages", "Trial version"]);
|
||||
result[0].Tags.ShouldBe(["Moe", "Healing", "Binaural", "ASMR", "Ear Cleaning", "Slice of Life / Daily Living", "Heartwarming", "Whispering"]);
|
||||
result[0].Type.ShouldBe(DLSiteWorkType.Released);
|
||||
result[0].Downloads.ShouldBe(1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user