- @component('components.link-card', ['link' => $ejaculation->link])
+ @component('components.link-card', ['link' => $ejaculation->link, 'is_too_sensitive' => $ejaculation->is_too_sensitive])
@endcomponent
-
+
@if ($user->isMe())
diff --git a/tests/MyAsserts.php b/tests/MyAsserts.php
new file mode 100644
index 0000000..c8019d8
--- /dev/null
+++ b/tests/MyAsserts.php
@@ -0,0 +1,17 @@
+assertSame($expected, array_intersect($actual, $expected), $message);
+ }
+}
diff --git a/tests/Unit/MetadataResolver/CienResolverTest.php b/tests/Unit/MetadataResolver/CienResolverTest.php
new file mode 100644
index 0000000..ca6f8d1
--- /dev/null
+++ b/tests/Unit/MetadataResolver/CienResolverTest.php
@@ -0,0 +1,48 @@
+shouldUseMock()) {
+ sleep(1);
+ }
+ }
+
+ public function test()
+ {
+ $responseText = file_get_contents(__DIR__ . '/../../fixture/Cien/test.html');
+
+ $this->createResolver(CienResolver::class, $responseText);
+
+ $metadata = $this->resolver->resolve('https://ci-en.dlsite.com/creator/2462/article/87502');
+ $this->assertSame('進捗とボツ立ち絵', $metadata->title);
+ $this->assertSame('ドット製2D ACTを製作しています。' . PHP_EOL . '恐ろしい存在に襲われる絶望感や、被虐的な官能がテーマです。', $metadata->description);
+ $this->assertStringStartsWith('https://media.ci-en.jp/private/attachment/creator/00002462/a7afd3b02a6d1caa6afe6a3bf5550fb6a42aefba686f17a0a2f63c97fd6867ab/image-800.jpg?px-time=', $metadata->image);
+ if ($this->shouldUseMock()) {
+ $this->assertSame('https://media.ci-en.jp/private/attachment/creator/00002462/a7afd3b02a6d1caa6afe6a3bf5550fb6a42aefba686f17a0a2f63c97fd6867ab/image-800.jpg?px-time=1568231879&px-hash=70c57e9a73d5afb4ac5363d1f37a851af8e0cb1f', $metadata->image);
+ $this->assertSame(1568235479, $metadata->expires_at->timestamp);
+ $this->assertSame('https://ci-en.dlsite.com/creator/2462/article/87502', (string) $this->handler->getLastRequest()->getUri());
+ }
+ }
+
+ public function testWithNoTimestamp()
+ {
+ $responseText = file_get_contents(__DIR__ . '/../../fixture/Cien/testWithNoTimestamp.html');
+ $this->createResolver(CienResolver::class, $responseText);
+
+ $this->expectException(\RuntimeException::class);
+ $this->expectExceptionMessage('Parameter "px-time" not found. Image=https://ci-en.dlsite.com/assets/img/common/logo_Ci-en_R18.svg Source=https://ci-en.dlsite.com/');
+
+ $this->resolver->resolve('https://ci-en.dlsite.com/');
+ }
+}
diff --git a/tests/Unit/MetadataResolver/CreateMockedResolver.php b/tests/Unit/MetadataResolver/CreateMockedResolver.php
index 528728c..e7e0bc6 100644
--- a/tests/Unit/MetadataResolver/CreateMockedResolver.php
+++ b/tests/Unit/MetadataResolver/CreateMockedResolver.php
@@ -5,6 +5,7 @@ namespace Tests\Unit\MetadataResolver;
use App\MetadataResolver\Resolver;
use GuzzleHttp\Client;
use GuzzleHttp\Handler\MockHandler;
+use GuzzleHttp\HandlerStack;
use GuzzleHttp\Psr7\Response;
use Monolog\Handler\AbstractHandler;
@@ -41,7 +42,7 @@ trait CreateMockedResolver
$mockResponse = new Response($status, $headers, $responseText);
$this->handler = new MockHandler([$mockResponse]);
- $client = new Client(['handler' => $this->handler]);
+ $client = new Client(['handler' => HandlerStack::create($this->handler)]);
$this->resolver = app()->make($resolverClass, ['client' => $client]);
return $this->resolver;
diff --git a/tests/Unit/MetadataResolver/DLsiteResolverTest.php b/tests/Unit/MetadataResolver/DLsiteResolverTest.php
index 2f163cb..ff164ba 100644
--- a/tests/Unit/MetadataResolver/DLsiteResolverTest.php
+++ b/tests/Unit/MetadataResolver/DLsiteResolverTest.php
@@ -44,7 +44,7 @@ class DLsiteResolverTest extends TestCase
$this->assertEquals('ことのはアムリラート', $metadata->title);
$this->assertEquals('メーカー名: SukeraSparo' . PHP_EOL . '異世界へと迷い込んだ凜に救いの手を差し伸べるルカ――。これは、ふたりが手探りの意思疎通(ことのは)で織りなす、もどかしくも純粋な……女の子同士の物語。', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/professional/VJ012000/VJ011276_img_main.jpg', $metadata->image);
- $this->assertEquals(['少女', '日常/生活', '純愛', '百合'], $metadata->tags);
+ $this->assertEquals(['日常/生活', '純愛', '百合', '少女'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/soft/work/=/product_id/VJ011276.html', (string) $this->handler->getLastRequest()->getUri());
}
@@ -60,7 +60,7 @@ class DLsiteResolverTest extends TestCase
$this->assertEquals('快楽ヒストリエ', $metadata->title);
$this->assertEquals('著者: 火鳥' . PHP_EOL . '天地創造と原初の人類を描いた「創世編」をはじめ、英雄たちの偉業を大真面目に考証した正真正銘の学術コミック全15編。', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/books/BJ139000/BJ138581_img_main.jpg', $metadata->image);
- $this->assertEquals(['おっぱい', 'ロリ', 'ショタ', '妹', '男性/おやじ', '女王様/お姫様', '王子様/王子系', '戦士', 'セーラー服', '着物/和服', '青年コミック', 'ギャグ', 'コメディ', '歴史/時代物', '褐色/日焼け', '爺'], $metadata->tags);
+ $this->assertEquals(['おっぱい', '青年コミック', 'ギャグ', 'コメディ', '歴史/時代物', 'ロリ', 'ショタ', '妹', '男性/おやじ', '女王様/お姫様', '王子様/王子系', '戦士', 'セーラー服', '着物/和服', '褐色/日焼け', '爺'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/comic/work/=/product_id/BJ138581.html', (string) $this->handler->getLastRequest()->getUri());
}
@@ -76,7 +76,7 @@ class DLsiteResolverTest extends TestCase
$this->assertEquals('催眠術で新婚人妻マナカさんとエッチしよう', $metadata->title);
$this->assertEquals('サークル名: デルタブレード' . PHP_EOL . '催眠術で新婚人妻マナカさんの愛する夫にすり替わって子作りラブラブエッチをするCG集です。', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/doujin/RJ206000/RJ205445_img_main.jpg', $metadata->image);
- $this->assertEquals(['断面図', '人妻', '中出し', '妊娠/孕ませ', '催眠', '口内射精'], $metadata->tags);
+ $this->assertEquals(['断面図', '中出し', '妊娠/孕ませ', '催眠', '口内射精', '人妻'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/maniax/work/=/product_id/RJ205445.html', (string) $this->handler->getLastRequest()->getUri());
}
@@ -92,7 +92,7 @@ class DLsiteResolverTest extends TestCase
$this->assertEquals('euphoria (HDリマスター) Best Price版', $metadata->title);
$this->assertEquals('ブランド名: CLOCK UP' . PHP_EOL . 'インモラルハードコアADV「euphoria」が高解像度(1024×768)版、「euphoria HDリマスター」となって登場!', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/professional/VJ009000/VJ008455_img_main.jpg', $metadata->image);
- $this->assertEquals(['アブノーマル', '幼なじみ', '女教師', '退廃/背徳/インモラル', '拘束', '強制/無理矢理', 'スカトロ', 'アヘ顔', '拷問', '血液/流血', '狂気'], $metadata->tags);
+ $this->assertEquals(['アブノーマル', 'アヘ顔', '退廃/背徳/インモラル', '拘束', '強制/無理矢理', 'スカトロ', '幼なじみ', '女教師', '拷問', '血液/流血', '狂気'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/pro/work/=/product_id/VJ008455.html', (string) $this->handler->getLastRequest()->getUri());
}
@@ -108,7 +108,7 @@ class DLsiteResolverTest extends TestCase
$this->assertEquals('永遠娘 vol.6', $metadata->title);
$this->assertEquals('著者: あまがえる / 玉之けだま / びんせん / 甘露アメ / 源五郎 / すみやお / 宇宙烏賊 / 毒茸人 / あやね / ガロウド / ハードボイルドよし子 / 夜歌 / 黒青郎君' . PHP_EOL . '君の命はどんな味なのだろうな?', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/books/BJ192000/BJ191317_img_main.jpg', $metadata->image);
- $this->assertEquals(['ツンデレ', 'ロリ', '妖怪', '人外娘/モンスター娘', 'セーラー服', 'メイド', 'ストッキング', 'ファンタジー', 'ぶっかけ', '中出し', '近親相姦', 'アヘ顔', '口内射精'], $metadata->tags);
+ $this->assertEquals(['アヘ顔', 'ファンタジー', 'ぶっかけ', '中出し', '近親相姦', '口内射精', 'ツンデレ', 'ロリ', '妖怪', '人外娘/モンスター娘', 'セーラー服', 'メイド', 'ストッキング'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/books/work/=/product_id/BJ191317.html', (string) $this->handler->getLastRequest()->getUri());
}
@@ -124,7 +124,7 @@ class DLsiteResolverTest extends TestCase
$this->assertEquals('体イク教師', $metadata->title);
$this->assertEquals('サークル名: Dusk' . PHP_EOL . '思い込みの激しい体育教師に執着されるお話', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/doujin/RJ218000/RJ217995_img_main.jpg', $metadata->image);
- $this->assertEquals(['教師', '中出し', '陵辱', '変態', '強制/無理矢理', 'レイプ'], $metadata->tags);
+ $this->assertEquals(['中出し', '陵辱', '変態', '強制/無理矢理', 'レイプ', '教師'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/girls/work/=/product_id/RJ217995.html', (string) $this->handler->getLastRequest()->getUri());
}
@@ -140,7 +140,7 @@ class DLsiteResolverTest extends TestCase
$this->assertEquals('×××レクチャー', $metadata->title);
$this->assertEquals('著者: 江口尋' . PHP_EOL . '昔、告白してくれた地味な同級生・瀬尾は超人気セクシー男優になっていて!?', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/books/BJ171000/BJ170641_img_main.jpg', $metadata->image);
- $this->assertEquals(['メガネ', '芸能人/アイドル/モデル', '俺様', 'ラブコメ', 'ラブラブ/あまあま', 'ティーンズラブ', '調教', '褐色/日焼け'], $metadata->tags);
+ $this->assertEquals(['ラブコメ', 'ラブラブ/あまあま', 'ティーンズラブ', '調教', 'メガネ', '芸能人/アイドル/モデル', '俺様', '褐色/日焼け'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/girls-pro/work/=/product_id/BJ170641.html', (string) $this->handler->getLastRequest()->getUri());
}
@@ -156,7 +156,7 @@ class DLsiteResolverTest extends TestCase
$this->assertEquals('秘密に堕つ', $metadata->title);
$this->assertEquals('サークル名: ナゲットぶん投げ屋さん' . PHP_EOL . 'とある村に越してきた新婚夫婦。村の集会所で行われた歓迎会で犯される花婿。村の男達に犯され続けた花婿にある変化が…?', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/doujin/RJ245000/RJ244977_img_main.jpg', $metadata->image);
- $this->assertEquals(['既婚者', '中出し', '強制/無理矢理', 'レイプ', 'モブ姦'], $metadata->tags);
+ $this->assertEquals(['中出し', '強制/無理矢理', 'レイプ', 'モブ姦', '既婚者'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/bl/work/=/product_id/RJ244977.html', (string) $this->handler->getLastRequest()->getUri());
}
@@ -172,7 +172,7 @@ class DLsiteResolverTest extends TestCase
$this->assertEquals('With Your First Girlfriend, at a Ghostly Night [Ear Cleaning] [Sleep Sharing]', $metadata->title);
$this->assertEquals('Circle: Triangle!' . PHP_EOL . 'You go with a girl of your first love and enjoy going to haunted places and her massage, ear cleaning, sleep sharing etc. (CV: Yui Asami)', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/doujin/RJ229000/RJ228866_img_main.jpg', $metadata->image);
- $this->assertEquals(['Healing', 'Binaural', 'ASMR', 'Childhood Friend', 'Ear Cleaning', 'Romance'], $metadata->tags);
+ $this->assertEquals(['Healing', 'Binaural', 'ASMR', 'Ear Cleaning', 'Lovey Dovey/Sweet Love', 'Childhood Friend'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/eng/work/=/product_id/RE228866.html', (string) $this->handler->getLastRequest()->getUri());
}
@@ -188,7 +188,7 @@ class DLsiteResolverTest extends TestCase
$this->assertEquals('NEKOPARA vol.1', $metadata->title);
$this->assertEquals('Circle: NEKO WORKs' . PHP_EOL . 'Chocolat and Vanilla star in a rich adult eroge series with E-mote system and animated H scenes', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/doujin/RJ145000/RJ144678_img_main.jpg', $metadata->image);
- $this->assertEquals(['Moe', 'Master and Servant', 'Funny Love Story', 'Nekomimi (Cat Ears)'], $metadata->tags);
+ $this->assertEquals(['Moe', 'Love Comedy/Romcom', 'Master and Servant', 'Nekomimi (Cat Ears)'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/ecchi-eng/work/=/product_id/RE144678.html', (string) $this->handler->getLastRequest()->getUri());
}
@@ -279,7 +279,7 @@ class DLsiteResolverTest extends TestCase
$this->assertEquals('獣○彼女カタログ', $metadata->title);
$this->assertEquals('著者: チキコ / MUJIN編集部' . PHP_EOL . '【DLsite.com独占販売】 エロ漫画界騒然、1冊まるごと獣○オンリー単行本! 人間チ×ポは出てきませんっ!!', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/books/BJ124000/BJ123822_img_main.jpg', $metadata->image);
- $this->assertEquals(['断面図', '制服', '水着', 'メイド', '巫女', '軍服', '中出し', 'フェラチオ', '複数プレイ/乱交', '異種姦', '巨乳/爆乳', '処女', '褐色/日焼け'], $metadata->tags);
+ $this->assertEquals(['断面図', '中出し', 'フェラチオ', '複数プレイ/乱交', '異種姦', '制服', '水着', 'メイド', '巫女', '軍服', '巨乳/爆乳', '処女', '褐色/日焼け'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/books/work/=/product_id/BJ123822.html', (string) $this->handler->getLastRequest()->getUri());
}
diff --git a/tests/Unit/MetadataResolver/DeviantArtResolverTest.php b/tests/Unit/MetadataResolver/DeviantArtResolverTest.php
index 88bae98..8e3f500 100644
--- a/tests/Unit/MetadataResolver/DeviantArtResolverTest.php
+++ b/tests/Unit/MetadataResolver/DeviantArtResolverTest.php
@@ -18,48 +18,19 @@ class DeviantArtResolverTest extends TestCase
}
}
- public function testWixmp()
- {
- $responseText = file_get_contents(__DIR__ . '/../../fixture/DeviantArt/wixmp.json');
-
- $this->createResolver(DeviantArtResolver::class, $responseText);
-
- $metadata = $this->resolver->resolve('https://www.deviantart.com/bonchilo/art/Sally-Nox-743562408');
- $this->assertSame('Sally Nox', $metadata->title);
- $this->assertSame('By Bonchilo', $metadata->description);
- $this->assertStringStartsWith('https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/f6b84a8f-053e-4ab6-bd6c-71276a4a9282/dcap4fc-6fd6359c-770b-4515-9e29-e99311d58d57.png/v1/fit/w_1024,h_1024,strp/image.jpg?token=', $metadata->image);
- if ($this->shouldUseMock()) {
- $this->assertSame('https://backend.deviantart.com/oembed?url=https://www.deviantart.com/bonchilo/art/Sally-Nox-743562408', (string) $this->handler->getLastRequest()->getUri());
- }
- }
-
- public function testWixmpNoImageOptions()
- {
- $responseText = file_get_contents(__DIR__ . '/../../fixture/DeviantArt/wixmpNoImageOptions.json');
-
- $this->createResolver(DeviantArtResolver::class, $responseText);
-
- $metadata = $this->resolver->resolve('https://www.deviantart.com/messenger-lame/art/rem-639676105');
- $this->assertSame('rem', $metadata->title);
- $this->assertSame('By messenger-lame', $metadata->description);
- $this->assertStringStartsWith('https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/9afa7937-381f-47f0-a8bc-40b9db1faad1/dakuh8p-aea3fc1c-c06e-466b-88ba-d27be8e164e9.png/v1/fit/w_1024,h_1024,strp/image.jpg?token=', $metadata->image);
- if ($this->shouldUseMock()) {
- $this->assertSame('https://backend.deviantart.com/oembed?url=https://www.deviantart.com/messenger-lame/art/rem-639676105', (string) $this->handler->getLastRequest()->getUri());
- }
- }
-
public function testMature()
{
$responseText = file_get_contents(__DIR__ . '/../../fixture/DeviantArt/mature.json');
$this->createResolver(DeviantArtResolver::class, $responseText);
- $metadata = $this->resolver->resolve('https://www.deviantart.com/rasbii/art/backstage-620617246');
- $this->assertSame('backstage', $metadata->title);
- $this->assertSame('By Rasbii', $metadata->description);
- $this->assertSame('https://orig00.deviantart.net/eb50/f/2016/191/a/b/preview_by_rasbii-da9hzby.png', $metadata->image);
+ $metadata = $this->resolver->resolve('https://www.deviantart.com/gatanii69/art/R-15-mabel-and-will-update-686016962');
+ $this->assertSame('R-15 mabel and will update', $metadata->title);
+ $this->assertSame('By gatanii69', $metadata->description);
+ $this->assertStringStartsWith('https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/6854f36d-8010-4cd0-9d62-0cf9b7829764/dbcfq2q-d78c9f6e-dced-4e5c-a345-2a1bfd5d7620.jpg', $metadata->image);
+ $this->assertSame(['nsfw', 'reversefalls', 'gravityfalls', 'gravityfallsfanart', 'mabelpines', 'billcipher', 'reversemabel', 'willcipher', 'reversebill', 'reversebillcipher', 'mawill'], $metadata->tags);
if ($this->shouldUseMock()) {
- $this->assertSame('https://backend.deviantart.com/oembed?url=https://www.deviantart.com/rasbii/art/backstage-620617246', (string) $this->handler->getLastRequest()->getUri());
+ $this->assertSame('https://backend.deviantart.com/oembed?url=https://www.deviantart.com/gatanii69/art/R-15-mabel-and-will-update-686016962', (string) $this->handler->getLastRequest()->getUri());
}
}
}
diff --git a/tests/Unit/MetadataResolver/FantiaResolverTest.php b/tests/Unit/MetadataResolver/FantiaResolverTest.php
new file mode 100644
index 0000000..ae976e9
--- /dev/null
+++ b/tests/Unit/MetadataResolver/FantiaResolverTest.php
@@ -0,0 +1,36 @@
+shouldUseMock()) {
+ sleep(1);
+ }
+ }
+
+ public function test()
+ {
+ $responseText = file_get_contents(__DIR__ . '/../../fixture/Fantia/test.json');
+
+ $this->createResolver(FantiaResolver::class, $responseText);
+
+ $metadata = $this->resolver->resolve('https://fantia.jp/posts/206561');
+ $this->assertSame('召喚士アルドラ', $metadata->title);
+ $this->assertSame('サークル: サークルぬるま湯 (ナナナナ)' . PHP_EOL . 'コミッション' . PHP_EOL . 'クイーンズブレイドリベリオンの召喚士アルドラです。', $metadata->description);
+ $this->assertSame('https://c.fantia.jp/uploads/post/file/206561/main_dbcc59e5-4090-4650-b969-8855a721c6a5.jpg', $metadata->image);
+ $this->assertSame(['ふたなり', '超乳', '超根', 'クイーンズブレイド', 'ナナナナ'], $metadata->tags);
+ if ($this->shouldUseMock()) {
+ $this->assertSame('https://fantia.jp/api/v1/posts/206561', (string) $this->handler->getLastRequest()->getUri());
+ }
+ }
+}
diff --git a/tests/Unit/MetadataResolver/FanzaResolverTest.php b/tests/Unit/MetadataResolver/FanzaResolverTest.php
new file mode 100644
index 0000000..919884f
--- /dev/null
+++ b/tests/Unit/MetadataResolver/FanzaResolverTest.php
@@ -0,0 +1,101 @@
+shouldUseMock()) {
+ sleep(1);
+ }
+ }
+
+ /**
+ * @dataProvider provider
+ */
+ public function test($filename, $url, $title, $description, $image, $tags)
+ {
+ $responseText = file_get_contents(__DIR__ . "/../../fixture/Fanza/{$filename}");
+
+ $this->createResolver(FanzaResolver::class, $responseText);
+
+ $metadata = $this->resolver->resolve($url);
+ $this->assertSame($title, $metadata->title);
+ $this->assertSame($description, $metadata->description);
+ $this->assertSame($image, $metadata->image);
+ $this->assertSame($tags, $metadata->tags);
+ if ($this->shouldUseMock()) {
+ $this->assertSame($url, (string) $this->handler->getLastRequest()->getUri());
+ }
+ }
+
+ public function provider()
+ {
+ return [
+ '動画 digital/videoa' => [
+ 'digital_videoa.html',
+ 'https://www.dmm.co.jp/digital/videoa/-/detail/=/cid=ssni00558/',
+ '巨乳姉妹2人とただひたすらセックスに明け暮れた両親不在の3日間',
+ '「お姉ちゃんもヤりなよ。すごい気持ちいいよ、セックス」ボクには父親が再婚してできた義理の妹たちがいる。名前はみはるとしおん。ある週末、父と母が外出して家を空けると、僕と妹たちの関係が大きく変わった。姉のみはるの前で妹のしおんと肉体関係を持つとそのままみはるともSEX。そして僕たちは両親がいない3日間、ただただSEXを楽しんだんだ。※ 配信方法によって収録内容が異なる場合があります。',
+ 'https://pics.dmm.co.jp/digital/video/ssni00558/ssni00558pl.jpg',
+ ['夕美しおん', '羽咲みはる', '朝霧浄', 'エスワン_ナンバーワンスタイル', 'S1_NO.1_STYLE', 'ハイビジョン', '独占配信', '制服', 'ドラマ', '巨乳', '美少女', 'ギリモザ', '姉・妹']
+ ],
+ '素人動画 digital/videoc' => [
+ 'digital_videoc.html',
+ 'https://www.dmm.co.jp/digital/videoc/-/detail/=/cid=sweet015/',
+ 'ねる',
+ '鉄板オナ素材的ハイシコリティ!もうサンプルは見ていただけましたか!?そうなんです!非の打ち所まるで無し!恋するキラッキラの瞳!愛嬌抜群の純真笑顔!Gカップ巨乳にむっちむちの恵体!モザイク越しにも伝わってしまう雑誌グラビア級の美少女ルックス!このスペックなのに自分に自信が持てない系のウブっ子!触れただけで濡れだす敏感ボディ!ねっとりDキスから嬉しそうに大量唾液をゴク飲みする程度には恋愛洗脳済み!溢れ出るガマン汁を丁寧に舐めとるラブいフェラ!ビックビク痙攣しながら困り顔で何度も何度も連続イキ絶頂!※ 配信方法によって収録内容が異なる場合があります。' . PHP_EOL . '特集:' . PHP_EOL . PHP_EOL . 'FANZAオリジナル『素人ホイホイZ/素人ホイホイsweet!』',
+ 'https://pics.dmm.co.jp/digital/amateur/sweet015/sweet015jp.jpg',
+ ['素人ホイホイsweet!', '独占配信', '巨乳', '制服', '清楚', '美少女', '女子校生', 'ハイビジョン']
+ ],
+ 'アニメ digital/anime' => [
+ 'digital_anime.html',
+ 'https://www.dmm.co.jp/digital/anime/-/detail/=/cid=h_1379jdxa57513/',
+ '性活週間 THE ANIMATION 第1巻',
+ 'めちゃシコ美少女マスター・みちきんぐの初単行本が' . PHP_EOL . '『ヌーディストビーチに修学旅行で?』『リアルエロゲシチュエーション』など' . PHP_EOL . '大ヒットシリーズを手掛けたアダルトアニメ界の新進気鋭クリエイター' . PHP_EOL . '「小原和大」によって待望のOVA化!' . PHP_EOL . '私と姉体験してみない?' . PHP_EOL . '(c)2019 みちきんぐ/GOT/ピンクパイナップル※ 配信方法によって収録内容が異なる場合があります。',
+ 'https://pics.dmm.co.jp/digital/video/h_1379jdxa57513/h_1379jdxa57513pl.jpg',
+ ['性活週間_THE_ANIMATION', 'ピンクパイナップル', 'Pink_Pineapple', 'ハイビジョン', '中出し', 'フェラ', '巨乳', '姉・妹']
+ ],
+ '同人' => [
+ 'doujin.html',
+ 'https://www.dmm.co.jp/dc/doujin/-/detail/=/cid=d_115139/',
+ '美少女拉致って性教育',
+ 'ハ○エースでおさげ髪美少女を拉致って、凌辱する内容です。' . PHP_EOL . '汚っさん×美少女モノ。' . PHP_EOL . '表紙込み総ページ数28p(内本文27p)' . PHP_EOL . '表紙大きさ1200×1719' . PHP_EOL . '本文大きさ1200×1694',
+ 'https://doujin-assets.dmm.co.jp/digital/comic/d_115139/d_115139pr.jpg',
+ ['美少女拉致って性教育', 'オリジナル', '制服', '男性向け', 'ミニ系', '少女', '屋外', '中出し', '成人向け', 'みくろぺえじ'],
+ ],
+ '電子書籍' => [
+ 'book.html',
+ 'https://book.dmm.co.jp/detail/b104atint00313/',
+ '少女×少女×少女',
+ '少女達が乱舞する…!' . PHP_EOL . '天上家。俺が捨てたあの家…祭子から「母が亡くなった」と電話を受けて、俺は妹達を救うために帰って行くが…。そこで待っていたのは、運命に逆らえず妹達との果てしなき乱交の宴だった…。' . PHP_EOL . '透明感溢れる魅力的なキャラクター、緻密に描きこまれた世界、そしてそのスタイルからは想像できないハードかつ長大なエロ描写!赤月みゅうとのセカンド単行本。',
+ 'https://ebook-assets.dmm.co.jp/digital/e-book/b104atint00313/b104atint00313pl.jpg',
+ ['赤月みゅうと', 'MUJIN編集部', '少女×少女×少女', 'MUJIN_COMICS', 'ティーアイネット', 'アダルトコミック単行本', '単行本', '美少女', '中出し', '3P・4P', 'ハーレム']
+ ],
+ 'PCゲーム' => [
+ 'dlsoft.html',
+ 'https://dlsoft.dmm.co.jp/detail/views_0630/',
+ '姫と穢欲のサクリファイス',
+ 'ソリデ国――国家間戦争に勝利し発展した大国は、一人の男によって襲撃される。国王に強い恨みを抱き、復讐のために行動を起こした主人公・カルドは使役している‘‘悪魔’’の力を借りて城を掌握。国政や国民には興味を示さず、国王への復讐として悪魔達の能力を使って王女・フィアナへの調教を開始する。',
+ 'https://pics.dmm.co.jp/digital/pcgame/views_0630/views_0630pl.jpg',
+ ['B-銀河', '遊丸', '瑠奈璃亜', 'はっとりまさき', '蒼瀬', '木下じゃっく', '御導はるか', '薄迷', '犬童飛沫', '星天誠', '紅ぴえろ', 'エスクード', 'お姫様', '辱め', 'デモ・体験版あり', 'ファンタジー']
+ ],
+ '未対応' => [
+ 'nosupport.html',
+ 'http://www.dmm.co.jp/ppm/video/-/detail/=/cid=h_275tdsu00032/',
+ '素人のお姉さん!!「チ○ポを洗う」お仕事してみませんか? 2',
+ 'パーツモデルの募集と思い面接に訪れた素人娘達に、初めての『チ●ポ』を洗うお仕事してもらいました!『エッチとかじゃなくて…洗うだけなら…』自らに言い聞かせる様に出演承諾した彼女...',
+ 'http://pics.dmm.co.jp/digital/video/h_275tdsu00032/h_275tdsu00032pl.jpg',
+ []
+ ]
+ ];
+ }
+}
diff --git a/tests/Unit/MetadataResolver/NicoSeigaResolverTest.php b/tests/Unit/MetadataResolver/NicoSeigaResolverTest.php
new file mode 100644
index 0000000..a96a35f
--- /dev/null
+++ b/tests/Unit/MetadataResolver/NicoSeigaResolverTest.php
@@ -0,0 +1,53 @@
+shouldUseMock()) {
+ sleep(1);
+ }
+ }
+
+ public function testSeiga()
+ {
+ $responseText = file_get_contents(__DIR__ . '/../../fixture/NicoSeiga/seiga.html');
+
+ $this->createResolver(NicoSeigaResolver::class, $responseText);
+
+ $metadata = $this->resolver->resolve('https://seiga.nicovideo.jp/seiga/im9623750');
+ $this->assertSame('シャミ子 / まとけち さんのイラスト', $metadata->title);
+ $this->assertSame('シャミ子が悪いんだよ・・・', $metadata->description);
+ $this->assertSame('https://lohas.nicoseiga.jp/thumb/9623750l?', $metadata->image);
+ $this->assertArrayContains(['アニメ', 'まちカドまぞく', 'シャミ子', 'シャドウミストレス優子', '吉田優子', '危機管理フォーム'], $metadata->tags);
+ if ($this->shouldUseMock()) {
+ $this->assertSame('https://seiga.nicovideo.jp/seiga/im9623750', (string) $this->handler->getLastRequest()->getUri());
+ }
+ }
+
+ public function testShunga()
+ {
+ $responseText = file_get_contents(__DIR__ . '/../../fixture/NicoSeiga/shunga.html');
+
+ $this->createResolver(NicoSeigaResolver::class, $responseText);
+
+ $metadata = $this->resolver->resolve('https://seiga.nicovideo.jp/seiga/im9232798');
+ $this->assertSame('ベッドのゆかりさん / せゆーら/Se-U-Ra さんのイラスト', $metadata->title);
+ $this->assertSame('待つ側の方がつよいってスマブラが伝えてきたので', $metadata->description);
+ $this->assertSame('https://lohas.nicoseiga.jp/thumb/9232798l?', $metadata->image);
+ $this->assertArrayContains(['結月ゆかり', 'VOICEROID'], $metadata->tags);
+ if ($this->shouldUseMock()) {
+ $this->assertSame('https://seiga.nicovideo.jp/seiga/im9232798', (string) $this->handler->getLastRequest()->getUri());
+ }
+ }
+}
diff --git a/tests/Unit/MetadataResolver/OGPResolverTest.php b/tests/Unit/MetadataResolver/OGPResolverTest.php
index d1c6e80..c03a0fe 100644
--- a/tests/Unit/MetadataResolver/OGPResolverTest.php
+++ b/tests/Unit/MetadataResolver/OGPResolverTest.php
@@ -3,7 +3,7 @@
namespace Tests\Unit\MetadataResolver;
use App\MetadataResolver\OGPResolver;
-use GuzzleHttp\Exception\ClientException;
+use GuzzleHttp\Exception\BadResponseException;
use Tests\TestCase;
class OGPResolverTest extends TestCase
@@ -14,7 +14,7 @@ class OGPResolverTest extends TestCase
{
$this->createResolver(OGPResolver::class, '', [], 404);
- $this->expectException(\RuntimeException::class);
+ $this->expectException(BadResponseException::class);
$this->resolver->resolve('http://example.com/404');
}
diff --git a/tests/Unit/MetadataResolver/PixivResolverTest.php b/tests/Unit/MetadataResolver/PixivResolverTest.php
index 41fc7cb..df5e83a 100644
--- a/tests/Unit/MetadataResolver/PixivResolverTest.php
+++ b/tests/Unit/MetadataResolver/PixivResolverTest.php
@@ -65,4 +65,20 @@ class PixivResolverTest extends TestCase
$this->assertSame('https://www.pixiv.net/ajax/illust/46713544', (string) $this->handler->getLastRequest()->getUri());
}
}
+
+ public function testArtworkUrl()
+ {
+ $responseText = file_get_contents(__DIR__ . '/../../fixture/Pixiv/illust.json');
+
+ $this->createResolver(PixivResolver::class, $responseText);
+
+ $metadata = $this->resolver->resolve('https://www.pixiv.net/artworks/68188073');
+ $this->assertEquals('coffee break', $metadata->title);
+ $this->assertEquals('投稿者: 裕' . PHP_EOL, $metadata->description);
+ $this->assertEquals('https://i.pixiv.cat/img-master/img/2018/04/12/00/01/28/68188073_p0_master1200.jpg', $metadata->image);
+ $this->assertEquals(['オリジナル', 'カフェ', '眼鏡', 'イヤホン', 'ぱっつん', '艶ぼくろ', '眼鏡っ娘', 'オリジナル5000users入り'], $metadata->tags);
+ if ($this->shouldUseMock()) {
+ $this->assertSame('https://www.pixiv.net/ajax/illust/68188073', (string) $this->handler->getLastRequest()->getUri());
+ }
+ }
}
diff --git a/tests/Unit/MetadataResolver/ToranoanaResolverTest.php b/tests/Unit/MetadataResolver/ToranoanaResolverTest.php
index efa23bf..7c208d4 100644
--- a/tests/Unit/MetadataResolver/ToranoanaResolverTest.php
+++ b/tests/Unit/MetadataResolver/ToranoanaResolverTest.php
@@ -26,7 +26,7 @@ class ToranoanaResolverTest extends TestCase
$metadata = $this->resolver->resolve('https://ec.toranoana.shop/tora/ec/item/040030720152');
$this->assertEquals('新・古明地喫茶~そしてまた扉は開く~', $metadata->title);
- $this->assertEquals('サークル【ツキギのとこ】(槻木こうすけ)発行の「新・古明地喫茶~そしてまた扉は開く~」を買うなら、とらのあな全年齢向け通信販売!', $metadata->description);
+ $this->assertEquals('サークル【ツキギのとこ】(槻木こうすけ)発行の「新・古明地喫茶~そしてまた扉は開く~」を買うなら、とらのあな全年齢向け通販!', $metadata->description);
$this->assertRegExp('~ecdnimg\.toranoana\.jp/ec/img/.*\.jpg~', $metadata->image);
if ($this->shouldUseMock()) {
$this->assertSame('https://ec.toranoana.shop/tora/ec/item/040030720152', (string) $this->handler->getLastRequest()->getUri());
@@ -41,7 +41,7 @@ class ToranoanaResolverTest extends TestCase
$metadata = $this->resolver->resolve('https://ec.toranoana.jp/tora_r/ec/item/040030720174');
$this->assertEquals('お姉ちゃんが妹のぱんつでひとりえっちしてました。', $metadata->title);
- $this->assertEquals('サークル【没後】(RYO)発行の「お姉ちゃんが妹のぱんつでひとりえっちしてました。」を買うなら、とらのあな成年向け通信販売!', $metadata->description);
+ $this->assertEquals('サークル【没後】(RYO)発行の「お姉ちゃんが妹のぱんつでひとりえっちしてました。」を買うなら、とらのあな成年向け通販!', $metadata->description);
$this->assertRegExp('~ecdnimg\.toranoana\.jp/ec/img/.*\.jpg~', $metadata->image);
if ($this->shouldUseMock()) {
$this->assertSame('https://ec.toranoana.jp/tora_r/ec/item/040030720174', (string) $this->handler->getLastRequest()->getUri());
@@ -56,7 +56,7 @@ class ToranoanaResolverTest extends TestCase
$metadata = $this->resolver->resolve('https://ec.toranoana.shop/tora_d/digi/item/042000013358');
$this->assertEquals('虎の穴ラボの薄い本。vol 1.5', $metadata->title);
- $this->assertEquals('サークル【虎の穴ラボ】(虎の穴ラボエンジニアチーム)発行の「虎の穴ラボの薄い本。vol 1.5」を買うなら、とらのあな全年齢向け電子書籍!', $metadata->description);
+ $this->assertEquals('サークル【虎の穴ラボ】(虎の穴ラボエンジニアチーム)発行の「虎の穴ラボの薄い本。vol 1.5」を買うなら、とらのあな全年齢向け電子書籍通販!', $metadata->description);
$this->assertRegExp('~ecdnimg\.toranoana\.jp/ec/img/.*\.jpg~', $metadata->image);
if ($this->shouldUseMock()) {
$this->assertSame('https://ec.toranoana.shop/tora_d/digi/item/042000013358', (string) $this->handler->getLastRequest()->getUri());
@@ -71,7 +71,7 @@ class ToranoanaResolverTest extends TestCase
$metadata = $this->resolver->resolve('https://ec.toranoana.jp/tora_rd/digi/item/042000013181');
$this->assertEquals('放課後のお花摘み', $metadata->title);
- $this->assertEquals('サークル【給食泥棒】(村雲)発行の「放課後のお花摘み」を買うなら、とらのあな成年向け電子書籍!', $metadata->description);
+ $this->assertEquals('サークル【給食泥棒】(村雲)発行の「放課後のお花摘み」を買うなら、とらのあな成年向け電子書籍通販!', $metadata->description);
$this->assertRegExp('~ecdnimg\.toranoana\.jp/ec/img/.*\.jpg~', $metadata->image);
if ($this->shouldUseMock()) {
$this->assertSame('https://ec.toranoana.jp/tora_rd/digi/item/042000013181', (string) $this->handler->getLastRequest()->getUri());
@@ -86,7 +86,7 @@ class ToranoanaResolverTest extends TestCase
$metadata = $this->resolver->resolve('https://ec.toranoana.shop/joshi/ec/item/040030702729');
$this->assertEquals('円卓のクソ漫画', $metadata->title);
- $this->assertEquals('サークル【地獄のすなぎもカーニバル】(槌田)発行の「円卓のクソ漫画」を買うなら、とらのあなJOSHIBU全年齢向け通信販売!', $metadata->description);
+ $this->assertEquals('サークル【地獄のすなぎもカーニバル】(槌田)発行の「円卓のクソ漫画」を買うなら、とらのあな女子部全年齢向け通販!', $metadata->description);
$this->assertRegExp('~ecdnimg\.toranoana\.jp/ec/img/.*\.jpg~', $metadata->image);
if ($this->shouldUseMock()) {
$this->assertSame('https://ec.toranoana.shop/joshi/ec/item/040030702729', (string) $this->handler->getLastRequest()->getUri());
@@ -101,7 +101,7 @@ class ToranoanaResolverTest extends TestCase
$metadata = $this->resolver->resolve('https://ec.toranoana.jp/joshi_r/ec/item/040030730126');
$this->assertEquals('リバースナイトリバース', $metadata->title);
- $this->assertEquals('サークル【雨傘サイクル】(チャリリズム)発行の「リバースナイトリバース」を買うなら、とらのあなJOSHIBU成年向け通信販売!', $metadata->description);
+ $this->assertEquals('サークル【雨傘サイクル】(チャリリズム)発行の「リバースナイトリバース」を買うなら、とらのあな女子部成年向け通販!', $metadata->description);
$this->assertRegExp('~ecdnimg\.toranoana\.jp/ec/img/.*\.jpg~', $metadata->image);
if ($this->shouldUseMock()) {
$this->assertSame('https://ec.toranoana.jp/joshi_r/ec/item/040030730126', (string) $this->handler->getLastRequest()->getUri());
@@ -116,7 +116,7 @@ class ToranoanaResolverTest extends TestCase
$metadata = $this->resolver->resolve('https://ec.toranoana.shop/joshi_d/digi/item/042000012192');
$this->assertEquals('超幸運ガール審神者GOLDEN', $metadata->title);
- $this->assertEquals('サークル【Day Of The Dead】(ほんちゅ)発行の「超幸運ガール審神者GOLDEN」を買うなら、とらのあなJOSHIBU全年齢向け電子書籍!', $metadata->description);
+ $this->assertEquals('サークル【Day Of The Dead】(ほんちゅ)発行の「超幸運ガール審神者GOLDEN」を買うなら、とらのあな女子部全年齢向け電子書籍通販!', $metadata->description);
$this->assertRegExp('~ecdnimg\.toranoana\.jp/ec/img/.*\.jpg~', $metadata->image);
if ($this->shouldUseMock()) {
$this->assertSame('https://ec.toranoana.shop/joshi_d/digi/item/042000012192', (string) $this->handler->getLastRequest()->getUri());
@@ -131,7 +131,7 @@ class ToranoanaResolverTest extends TestCase
$metadata = $this->resolver->resolve('https://ec.toranoana.jp/joshi_rd/digi/item/042000013472');
$this->assertEquals('UBWの裏側で非公式に遠坂凛をナデナデする本', $metadata->title);
- $this->assertEquals('サークル【阿仁谷組】(阿仁谷ユイジ)発行の「UBWの裏側で非公式に遠坂凛をナデナデする本」を買うなら、とらのあなJOSHIBU成年向け電子書籍!', $metadata->description);
+ $this->assertEquals('サークル【阿仁谷組】(阿仁谷ユイジ)発行の「UBWの裏側で非公式に遠坂凛をナデナデする本」を買うなら、とらのあな女子部成年向け電子書籍通販!', $metadata->description);
$this->assertRegExp('~ecdnimg\.toranoana\.jp/ec/img/.*\.jpg~', $metadata->image);
if ($this->shouldUseMock()) {
$this->assertSame('https://ec.toranoana.jp/joshi_rd/digi/item/042000013472', (string) $this->handler->getLastRequest()->getUri());
diff --git a/tests/Unit/MetadataResolver/XtubeResolverTest.php b/tests/Unit/MetadataResolver/XtubeResolverTest.php
index 828ec3f..24b55ac 100644
--- a/tests/Unit/MetadataResolver/XtubeResolverTest.php
+++ b/tests/Unit/MetadataResolver/XtubeResolverTest.php
@@ -20,15 +20,18 @@ class XtubeResolverTest extends TestCase
public function test()
{
- $responseText = file_get_contents(__DIR__ . '/../../fixture/Xtube/test.json');
+ $responseText = file_get_contents(__DIR__ . '/../../fixture/Xtube/video.html');
$this->createResolver(XtubeResolver::class, $responseText);
$metadata = $this->resolver->resolve('https://www.xtube.com/video-watch/homegrown-big-tits-18634762');
$this->assertEquals('Homegrown Big Tits', $metadata->title);
$this->assertEquals('Dedicated to the fans of the beautiful amateur women with big natural tits. All user submitted - you can see big boob amateur hotties fucking and sucking as their tits bounce and sway.', $metadata->description);
- $this->assertRegExp('~https://cdn\d-s-hw-e5\.xtube\.com/m=eSK08f/videos/201302/07/RF4Nk-S774-/240X180/1\.jpg~', $metadata->image);
- $this->assertEquals(['bigtits', 'homeg'], $metadata->tags);
+ $this->assertRegExp('~https://cdn\d+-s-hw-e5\.xtube\.com/m=eaAaaEFb/videos/201302/07/RF4Nk-S774-/original/1\.jpg~', $metadata->image);
+ $this->assertEquals(['Amateur', 'Blowjob', 'Big Boobs', 'bigtits', 'homeg'], $metadata->tags);
+ if ($this->shouldUseMock()) {
+ $this->assertSame('https://www.xtube.com/video-watch/homegrown-big-tits-18634762', (string) $this->handler->getLastRequest()->getUri());
+ }
}
public function testNotMatch()
@@ -39,13 +42,4 @@ class XtubeResolverTest extends TestCase
$this->createResolver(XtubeResolver::class, '');
$this->resolver->resolve('https://www.xtube.com/gallery/black-celebs-free-7686657');
}
-
- public function testNotOK()
- {
- $this->expectException(\RuntimeException::class);
- $this->expectExceptionMessage('404: https://www.xtube.com/video-watch/notfound-404');
-
- $this->createResolver(XtubeResolver::class, '', [], 404);
- $this->resolver->resolve('https://www.xtube.com/video-watch/notfound-404');
- }
}
diff --git a/tests/fixture/Cien/test.html b/tests/fixture/Cien/test.html
new file mode 100644
index 0000000..04f73fa
--- /dev/null
+++ b/tests/fixture/Cien/test.html
@@ -0,0 +1,678 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
進捗とボツ立ち絵 - ねんない5 - Ci-en
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ねんない5さんをフォローして、最新情報をチェックしよう!
+
マイページへ
+
Ci-enはクリエイターに対して、金銭的な支援を送ることができるサービスです。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+今日のサムネイルはストアページに掲載する予定のキャラクター紹介画像です。
+ドットでない解像度の高いイラストは時間も体力も精神力もかかるので、こういうのを行うタスクを開発終盤に残さないでよかったと本気で思っています。
+
【作業進捗】
+現在は引き続き、音入れ・敵の調整・やられ演出の設定を行っています。
+バグもよくみつかります。
+
みつかるバグはいいバグです。
+
◆完了したステージ
+・森
+・大樹
+・砦
+・廃村
+◆まだ
+・下水←着手中
+・聖堂
+
下水は残すところボスのみですが、ボスの動きにやや大きめの調整が必要で、そこで少し時間を使っています。
+森~廃村ステージまではずっと1日1ステージ単位でやってきましたが、さすがにちょっとペースが早すぎて消耗してきたので、少し速度を落としているというのもあります。
+
◆ボツの立ち絵
+最近は開発も終盤なので、お見せできる絵的な進捗が少なかったと思います。
+おそらくボツになる立ち絵が出てきましたのでそれを掲載させて頂きます。
+
ネタバレではないと思いますが、一応エロなので下に置きます。
+お題箱の下記に掲載します。
+
+
+
フォロワー以上限定無料
+
+
+
+
開発に関する記事の観覧を行えます。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/fixture/Cien/testWithNoTimestamp.html b/tests/fixture/Cien/testWithNoTimestamp.html
new file mode 100644
index 0000000..6d7b804
--- /dev/null
+++ b/tests/fixture/Cien/testWithNoTimestamp.html
@@ -0,0 +1,602 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
好きの気持ちは、カタチで伝えよう。 - Ci-en
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
新しいものを作るのは、簡単なことではありません。思いを形にするには時間と手間、そして資金が必要です。
+
Ci-enで好きなクリエイターを支援すれば、その収益を創作活動に活かすことができるようになります。
+
クリエイターも支援者も、誰もが創作を楽しめる世界に参加してみませんか?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ONEONE1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
同人サークルGyu!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
クリメニア
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Hypnotic Yanh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
シロクマの嫁(伊ヶ崎綾香)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
鉱油/73号坑道
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ぽいずん
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
あいすシチュー
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
みこにそみ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
D-LIS-ディーリス
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
DLsiteアカウントをお持ちの方はログインできます。
+
+
株式会社エイシスが運営しているサービスをDLsiteアカウント一つでご利用いただけます。
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/fixture/DLsite/testBL.html b/tests/fixture/DLsite/testBL.html
index 68a35e7..4fa78bf 100644
--- a/tests/fixture/DLsite/testBL.html
+++ b/tests/fixture/DLsite/testBL.html
@@ -1,8 +1,8 @@
-
+
-
+
@@ -43,20 +43,20 @@
-
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
@@ -94,7 +94,7 @@ $.extend({
if ($.useAdultcheck) return;
$.useAdultcheck = true;
var s = document.createElement('script');
- s.src = '/js/adultcheck.js?1553837147';
+ s.src = '/js/adultcheck.js?1566881566';
s.defer = true;
document.querySelector('head').appendChild(s);
}
@@ -121,19 +121,22 @@ if ((dlsite.isAdult() && dlsite.getId() !== 'circle' && !(dlsite.isFemale() && d
女性向け
-
+
@@ -204,10 +212,10 @@ if ((dlsite.isAdult() && dlsite.getId() !== 'circle' && !(dlsite.isFemale() && d