From c0b76e522be3f71a1ec8e0106aa47bc66f223ea2 Mon Sep 17 00:00:00 2001 From: eai04191 Date: Mon, 9 Sep 2019 13:52:32 +0900 Subject: [PATCH] =?UTF-8?q?200=E3=81=A7=E3=81=AA=E3=81=8B=E3=81=A3?= =?UTF-8?q?=E3=81=9F=E3=81=A8=E3=81=8D=E3=81=AE=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 4xxや5xxの場合は`\GuzzleHttp\Exception\BadResponseException`が発生するので、今まであったelseのところには到達しなかった --- app/MetadataResolver/XtubeResolver.php | 26 ++++++++----------- .../MetadataResolver/XtubeResolverTest.php | 9 ------- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/app/MetadataResolver/XtubeResolver.php b/app/MetadataResolver/XtubeResolver.php index 322ec20..d2b3272 100644 --- a/app/MetadataResolver/XtubeResolver.php +++ b/app/MetadataResolver/XtubeResolver.php @@ -24,23 +24,19 @@ class XtubeResolver implements Resolver } $res = $this->client->get($url); - if ($res->getStatusCode() === 200) { - $html = (string) $res->getBody(); - $metadata = new Metadata(); - $crawler = new Crawler($html); + $html = (string) $res->getBody(); + $metadata = new Metadata(); + $crawler = new Crawler($html); - // poster URL抽出 - $playerConfig = explode("\n", trim($crawler->filter('#playerWrapper script')->last()->text())); - preg_match('~https:\\\/\\\/cdn\d+-s-hw-e5\.xtube\.com\\\/m=(?P.{8})\\\/videos\\\/\d{6}\\\/\d{2}\\\/.{5}-.{4}-\\\/original\\\/\d+\.jpg~', $playerConfig[0], $matches); - $metadata->image = str_replace('\/', '/', $matches[0]); + // poster URL抽出 + $playerConfig = explode("\n", trim($crawler->filter('#playerWrapper script')->last()->text())); + preg_match('~https:\\\/\\\/cdn\d+-s-hw-e5\.xtube\.com\\\/m=(?P.{8})\\\/videos\\\/\d{6}\\\/\d{2}\\\/.{5}-.{4}-\\\/original\\\/\d+\.jpg~', $playerConfig[0], $matches); + $metadata->image = str_replace('\/', '/', $matches[0]); - $metadata->title = trim($crawler->filter('.underPlayerRateForm h1')->text('')); - $metadata->description = trim($crawler->filter('.fullDescription ')->text('')); - $metadata->tags = $crawler->filter('.tagsCategories a')->extract('_text'); + $metadata->title = trim($crawler->filter('.underPlayerRateForm h1')->text('')); + $metadata->description = trim($crawler->filter('.fullDescription ')->text('')); + $metadata->tags = $crawler->filter('.tagsCategories a')->extract('_text'); - return $metadata; - } else { - throw new \RuntimeException("{$res->getStatusCode()}: $url"); - } + return $metadata; } } diff --git a/tests/Unit/MetadataResolver/XtubeResolverTest.php b/tests/Unit/MetadataResolver/XtubeResolverTest.php index 859d3d9..24b55ac 100644 --- a/tests/Unit/MetadataResolver/XtubeResolverTest.php +++ b/tests/Unit/MetadataResolver/XtubeResolverTest.php @@ -42,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'); - } }