pixelfed/app/Transformer/Api/MediaTransformer.php

54 lines
1.7 KiB
PHP
Raw Permalink Normal View History

2018-07-12 16:42:17 +00:00
<?php
namespace App\Transformer\Api;
use App\Media;
use League\Fractal;
use Storage;
2018-07-12 16:42:17 +00:00
class MediaTransformer extends Fractal\TransformerAbstract
{
public function transform(Media $media)
{
$res = [
'id' => (string) $media->id,
'type' => strtolower($media->activityVerb()),
'url' => $media->url(),
2018-12-31 04:26:37 +00:00
'remote_url' => null,
'preview_url' => $media->thumbnailUrl(),
2021-04-01 04:08:03 +00:00
'optimized_url' => $media->optimized_url,
2018-12-31 04:26:37 +00:00
'text_url' => null,
'meta' => null,
'description' => $media->caption,
2021-04-01 04:08:03 +00:00
'license' => $media->getLicense(),
2018-12-31 04:26:37 +00:00
'is_nsfw' => $media->is_nsfw,
'orientation' => $media->orientation,
'filter_name' => $media->filter_name,
2020-11-28 02:52:40 +00:00
'filter_class' => $media->version == 1 ? $media->filter_class : null,
2018-12-31 04:26:37 +00:00
'mime' => $media->mime,
'blurhash' => $media->blurhash ?? 'U4Rfzst8?bt7ogayj[j[~pfQ9Goe%Mj[WBay'
2018-07-12 16:42:17 +00:00
];
if(config('media.hls.enabled') && $media->hls_transcoded_at != null && $media->hls_path) {
$res['hls_manifest'] = url(Storage::url($media->hls_path));
}
if($media->width && $media->height) {
$res['meta'] = [
'focus' => [
'x' => 0,
'y' => 0
],
'original' => [
'width' => $media->width,
'height' => $media->height,
'size' => "{$media->width}x{$media->height}",
'aspect' => $media->width / $media->height
]
];
}
return $res;
2018-07-12 16:42:17 +00:00
}
2018-08-28 03:07:36 +00:00
}