From a45d5cd558c6db2d4e1c9d2f6d8729cbe0417f40 Mon Sep 17 00:00:00 2001 From: eai04191 Date: Sat, 15 Jun 2019 05:33:54 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=B7=E3=83=AA=E3=83=BC=E3=82=BA=E3=81=AB?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit APIがわからないのでとりあえずOGPとcatだけ fix #172 --- app/MetadataResolver/MetadataResolver.php | 1 + app/MetadataResolver/PixivResolver.php | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/app/MetadataResolver/MetadataResolver.php b/app/MetadataResolver/MetadataResolver.php index 129899a..c47608a 100644 --- a/app/MetadataResolver/MetadataResolver.php +++ b/app/MetadataResolver/MetadataResolver.php @@ -18,6 +18,7 @@ class MetadataResolver implements Resolver '~www\.dlsite\.com/.*/work/=/product_id/..\d+(\.html)?~' => DLsiteResolver::class, '~dlsite\.jp/mawtw/..\d+~' => DLsiteResolver::class, '~www\.pixiv\.net/member_illust\.php\?illust_id=\d+~' => PixivResolver::class, + '~www\.pixiv\.net/user/\d+/series/\d+~' => PixivResolver::class, '~fantia\.jp/posts/\d+~' => FantiaResolver::class, '~dmm\.co\.jp/~' => FanzaResolver::class, '~www\.patreon\.com/~' => PatreonResolver::class, diff --git a/app/MetadataResolver/PixivResolver.php b/app/MetadataResolver/PixivResolver.php index 3b9a282..64f825c 100644 --- a/app/MetadataResolver/PixivResolver.php +++ b/app/MetadataResolver/PixivResolver.php @@ -36,6 +36,18 @@ class PixivResolver implements Resolver public function resolve(string $url): Metadata { + if (preg_match('~www\.pixiv\.net/user/\d+/series/\d+~', $url, $matches)) { + $res = $this->client->get($url); + if ($res->getStatusCode() === 200) { + $metadata = $this->ogpResolver->parse($res->getBody()); + $metadata->image = $this->proxize($metadata->image); + + return $metadata; + } else { + throw new \RuntimeException("{$res->getStatusCode()}: $url"); + } + } + parse_str(parse_url($url, PHP_URL_QUERY), $params); $illustId = $params['illust_id']; $page = 0;