英語版Pixivに対応する
This commit is contained in:
		@@ -20,7 +20,7 @@ class MetadataResolver implements Resolver
 | 
				
			|||||||
        '~www\.dlsite\.com/.*/dlaf/=/aid/.+/url/.+~' => DLsiteResolver::class,
 | 
					        '~www\.dlsite\.com/.*/dlaf/=/aid/.+/url/.+~' => DLsiteResolver::class,
 | 
				
			||||||
        '~dlsite\.jp/...tw/..\d+~' => DLsiteResolver::class,
 | 
					        '~dlsite\.jp/...tw/..\d+~' => DLsiteResolver::class,
 | 
				
			||||||
        '~www\.pixiv\.net/member_illust\.php\?illust_id=\d+~' => PixivResolver::class,
 | 
					        '~www\.pixiv\.net/member_illust\.php\?illust_id=\d+~' => PixivResolver::class,
 | 
				
			||||||
        '~www\.pixiv\.net/artworks/\d+~' => PixivResolver::class,
 | 
					        '~www\.pixiv\.net/(en/)?artworks/\d+~' => PixivResolver::class,
 | 
				
			||||||
        '~www\.pixiv\.net/user/\d+/series/\d+~' => PixivResolver::class,
 | 
					        '~www\.pixiv\.net/user/\d+/series/\d+~' => PixivResolver::class,
 | 
				
			||||||
        '~fantia\.jp/posts/\d+~' => FantiaResolver::class,
 | 
					        '~fantia\.jp/posts/\d+~' => FantiaResolver::class,
 | 
				
			||||||
        '~dmm\.co\.jp/~' => FanzaResolver::class,
 | 
					        '~dmm\.co\.jp/~' => FanzaResolver::class,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,8 +45,8 @@ class PixivResolver implements Resolver
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $page = 0;
 | 
					        $page = 0;
 | 
				
			||||||
        if (preg_match('~www\.pixiv\.net/artworks/(\d+)~', $url, $matches)) {
 | 
					        if (preg_match('~www\.pixiv\.net/(en/)?artworks/(?P<illustId>\d+)~', $url, $matches)) {
 | 
				
			||||||
            $illustId = $matches[1];
 | 
					            $illustId = $matches['illustId'];
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            parse_str(parse_url($url, PHP_URL_QUERY), $params);
 | 
					            parse_str(parse_url($url, PHP_URL_QUERY), $params);
 | 
				
			||||||
            $illustId = $params['illust_id'];
 | 
					            $illustId = $params['illust_id'];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -81,4 +81,20 @@ class PixivResolverTest extends TestCase
 | 
				
			|||||||
            $this->assertSame('https://www.pixiv.net/ajax/illust/68188073', (string) $this->handler->getLastRequest()->getUri());
 | 
					            $this->assertSame('https://www.pixiv.net/ajax/illust/68188073', (string) $this->handler->getLastRequest()->getUri());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function testArtworkUrlEn()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $responseText = file_get_contents(__DIR__ . '/../../fixture/Pixiv/illust.json');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $this->createResolver(PixivResolver::class, $responseText);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $metadata = $this->resolver->resolve('https://www.pixiv.net/en/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());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user