parent
d049a6f631
commit
db39ee35c2
@ -24,20 +24,16 @@ class DeviantArtResolver implements Resolver
|
|||||||
public function resolve(string $url): Metadata
|
public function resolve(string $url): Metadata
|
||||||
{
|
{
|
||||||
$res = $this->client->get('https://backend.deviantart.com/oembed?url=' . $url);
|
$res = $this->client->get('https://backend.deviantart.com/oembed?url=' . $url);
|
||||||
if ($res->getStatusCode() === 200) {
|
$data = json_decode($res->getBody()->getContents(), true);
|
||||||
$data = json_decode($res->getBody()->getContents(), true);
|
$metadata = new Metadata();
|
||||||
$metadata = new Metadata();
|
|
||||||
|
|
||||||
// アスペクト比を保ったまま、縦か横が最大1024pxになる画像を取得する。
|
// アスペクト比を保ったまま、縦か横が最大1024pxになる画像を取得する。
|
||||||
// Ref: https://support.wixmp.com/en/article/image-service-3835799
|
// Ref: https://support.wixmp.com/en/article/image-service-3835799
|
||||||
// 作成されていない画像が参照されると403を返すようなので、サイト内で使用されている1024pxにした。
|
// 作成されていない画像が参照されると403を返すようなので、サイト内で使用されている1024pxにした。
|
||||||
$metadata->image = preg_replace('~/v1/fit/w_\d+,h_\d+(?:,q_\d+),strp/.+\.(jpg|png|webp|gif)~', '/v1/fit/w_1024,h_1024,strp/image.jpg', $data['thumbnail_url']);
|
$metadata->image = preg_replace('~/v1/fit/w_\d+,h_\d+(?:,q_\d+),strp/.+\.(jpg|png|webp|gif)~', '/v1/fit/w_1024,h_1024,strp/image.jpg', $data['thumbnail_url']);
|
||||||
$metadata->title = $data['title'] ?? '';
|
$metadata->title = $data['title'] ?? '';
|
||||||
$metadata->description = 'By ' . $data['author_name'];
|
$metadata->description = 'By ' . $data['author_name'];
|
||||||
|
|
||||||
return $metadata;
|
return $metadata;
|
||||||
} else {
|
|
||||||
throw new \RuntimeException("{$res->getStatusCode()}: $url");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user