From b0a7504691b4068454c7c6e165a901bf7fe5a1e7 Mon Sep 17 00:00:00 2001 From: eai04191 Date: Mon, 14 Jan 2019 16:11:14 +0900 Subject: [PATCH] =?UTF-8?q?Logging=E3=81=AE=E5=89=8A=E9=99=A4=E3=83=BB?= =?UTF-8?q?=E3=83=A1=E3=82=BD=E3=83=83=E3=83=89=E3=81=AE=E8=AA=AC=E6=98=8E?= =?UTF-8?q?=E3=82=92=E3=81=BE=E3=81=A8=E3=82=82=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/MetadataResolver/PixivResolver.php | 40 +++++++++++++++----------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/app/MetadataResolver/PixivResolver.php b/app/MetadataResolver/PixivResolver.php index 6c82d59..99c54b6 100644 --- a/app/MetadataResolver/PixivResolver.php +++ b/app/MetadataResolver/PixivResolver.php @@ -2,19 +2,31 @@ namespace App\MetadataResolver; -use Illuminate\Support\Facades\Log; - class PixivResolver implements Resolver { - public function thumbnail_to_master_url(string $url):string { - // 最大長辺 1200 の画像に変換 + + /** + * サムネイル画像 URL から最大長辺 1200px の画像 URL に変換する + * + * @param string サムネイル画像 URL + * @return string 1200px の画像 URL + */ + public function thumbnail_to_master_url(string $url):string + { $url = str_replace("/c/128x128", "", $url); $url = str_replace("square1200.jpg", "master1200.jpg", $url); return $url; } - public function proxize(string $url):string { - // pixiv.cat のプロキシ URL に変換する HUGE THANKS TO PIXIV.CAT! + /** + * 直リン可能な pixiv.cat のプロキシ URL に変換する + * HUGE THANKS TO PIXIV.CAT! + * + * @param string i.pximg URL + * @return string i.pixiv.cat URL + */ + public function proxize(string $url):string + { $url = str_replace("i.pximg.net", "i.pixiv.cat", $url); return $url; } @@ -30,9 +42,7 @@ class PixivResolver implements Resolver $page = $match[1]; // 未ログインでは漫画ページを開けないため、URL を作品ページに変換する - Log::debug($url); $url = str_replace("mode=manga_big", "mode=medium", $url); - Log::debug($url); $client = new \GuzzleHttp\Client(); $res = $client->get($url); @@ -42,22 +52,20 @@ class PixivResolver implements Resolver preg_match("~https://i\.pximg\.net/c/128x128/img-master/img/\d{4}/\d{2}/\d{2}/\d{2}/\d{2}/\d{2}/{$illust_id}_p0_square1200\.jpg~", $res->getBody(), $match); $illust_thumbnail_url = $match[0]; - Log::debug($illust_thumbnail_url); $illust_url = $this->thumbnail_to_master_url($illust_thumbnail_url); - Log::debug($illust_url); // 指定ページに変換 $illust_url = str_replace("p0_master", "p{$page}_master", $illust_url); - Log::debug($illust_url); - $metadata->image = $this->proxize($illust_url);; + $metadata->image = $this->proxize($illust_url); + ; return $metadata; } else { throw new \RuntimeException("{$res->getStatusCode()}: $url"); } - }else { + } else { $client = new \GuzzleHttp\Client(); $res = $client->get($url); if ($res->getStatusCode() === 200) { @@ -68,13 +76,14 @@ class PixivResolver implements Resolver if (strpos($metadata->image, "pixiv_logo.gif") || strpos($metadata->image, "pictures.jpg")) { // 作品ページの場合のみ対応 - if(strpos(parse_url($url)["query"], "mode=medium")){ + if (strpos(parse_url($url)["query"], "mode=medium")) { preg_match("~https://i\.pximg\.net/c/128x128/img-master/img/\d{4}/\d{2}/\d{2}/\d{2}/\d{2}/\d{2}/{$illust_id}(_p0)?_square1200\.jpg~", $res->getBody(), $match); $illust_thumbnail_url = $match[0]; $illust_url = $this->thumbnail_to_master_url($illust_thumbnail_url); - $metadata->image = $this->proxize($illust_url);; + $metadata->image = $this->proxize($illust_url); + ; } } @@ -82,7 +91,6 @@ class PixivResolver implements Resolver } else { throw new \RuntimeException("{$res->getStatusCode()}: $url"); } - } } }