wixmpのURL変換の修正

常にjpgを使用する
1024pxの画像を使用する
q_が付いていない場合に対応
This commit is contained in:
eai04191 2019-08-27 21:36:44 +09:00
parent ac40a411da
commit 91e6cea79a

View File

@ -29,13 +29,14 @@ class DeviantArtResolver implements Resolver
$metadata = new Metadata();
if (preg_match('~\.wixmp\.com$~', parse_url($data['url'])['host'])) {
// アスペクト比を保ったまま、縦か横が最大700pxになるように変換する。
// アスペクト比を保ったまま、縦か横が最大1024pxになる画像を取得する。
// Ref: https://support.wixmp.com/en/article/image-service-3835799
// 作成されていない画像が参照されると403を返すようなので、サイト内で使用されている1024pxにした。
if (strpos($data['url'], '/v1/fill/')) {
$metadata->image = preg_replace('~/v1/fill/w_\d+,h_\d+,q_\d+,strp~', '/v1/fit/w_700,h_700,q_70,strp', $data['url']);
$metadata->image = preg_replace('~/v1/fill/w_\d+,h_\d+(?:,q_\d+),strp/.+\.(jpg|png|webp|gif)~', '/v1/fit/w_1024,h_1024,strp/image.jpg', $data['url']);
} else {
$queryStartPos = strpos($data['url'], '?');
$metadata->image = substr_replace($data['url'], '/v1/fit/w_700,h_700,strp/image.jpg', $queryStartPos, 0);
$metadata->image = substr_replace($data['url'], '/v1/fit/w_1024,h_1024,strp/image.jpg', $queryStartPos, 0);
}
} else {
$metadata->image = $data['url'];