From 04d546b1f02374a16afb2f4d55ac46cb4154d75e Mon Sep 17 00:00:00 2001 From: shibafu Date: Sun, 16 Aug 2020 14:38:35 +0900 Subject: [PATCH] =?UTF-8?q?Twitter=E3=81=AE=E3=82=B5=E3=83=96=E3=83=89?= =?UTF-8?q?=E3=83=A1=E3=82=A4=E3=83=B3=E5=AF=BE=E5=BF=9C=E7=94=A8Resolver?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/MetadataResolver/MetadataResolver.php | 1 + app/MetadataResolver/TwitterResolver.php | 33 +++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 app/MetadataResolver/TwitterResolver.php diff --git a/app/MetadataResolver/MetadataResolver.php b/app/MetadataResolver/MetadataResolver.php index 8470275..6ab663d 100644 --- a/app/MetadataResolver/MetadataResolver.php +++ b/app/MetadataResolver/MetadataResolver.php @@ -34,6 +34,7 @@ class MetadataResolver implements Resolver '~www\.xtube\.com/video-watch/.*-\d+$~'=> XtubeResolver::class, '~ss\.kb10uy\.org/posts/\d+$~' => Kb10uyShortStoryServerResolver::class, '~www\.hentai-foundry\.com/pictures/user/.+/\d+/.+~'=> HentaiFoundryResolver::class, + '~(www\.)?((mobile|m)\.)?twitter\.com/(#!/)?[0-9a-zA-Z_]{1,15}/status(es)?/([0-9]+)/?(\\?.+)?$~' => TwitterResolver::class, ]; public $mimeTypes = [ diff --git a/app/MetadataResolver/TwitterResolver.php b/app/MetadataResolver/TwitterResolver.php new file mode 100644 index 0000000..adfb5d3 --- /dev/null +++ b/app/MetadataResolver/TwitterResolver.php @@ -0,0 +1,33 @@ +client = $client; + $this->ogpResolver = $ogpResolver; + } + + public function resolve(string $url): Metadata + { + $url = preg_replace('/(www\.)?(mobile|m)\.twitter\.com/u', 'twitter.com', $url); + + $res = $this->client->get($url); + $html = (string) $res->getBody(); + + return $this->ogpResolver->parse($html); + } +}