Update MediaTransformer, return proper image type

pull/5999/head
Daniel Supernault 2025-05-16 01:36:14 -06:00
rodzic 434ac27a8d
commit 0dff48adb3
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 23740873EE6F76A1
2 zmienionych plików z 47 dodań i 21 usunięć

Wyświetl plik

@ -111,6 +111,30 @@ class Media extends Model
return $verb;
}
public function mediaType()
{
$verb = 'Document';
switch ($this->mimeType()) {
case 'audio':
$verb = 'Audio';
break;
case 'image':
$verb = 'Image';
break;
case 'video':
$verb = 'Video';
break;
default:
$verb = 'Image';
break;
}
return $verb;
}
public function getMetadata()
{
return json_decode($this->metadata, true, 3);

Wyświetl plik

@ -11,40 +11,42 @@ class MediaTransformer extends Fractal\TransformerAbstract
public function transform(Media $media)
{
$res = [
'id' => (string) $media->id,
'type' => strtolower($media->activityVerb()),
'url' => $media->url(),
'remote_url' => null,
'preview_url' => $media->thumbnailUrl(),
'id' => (string) $media->id,
'type' => strtolower($media->mediaType()),
'url' => $media->url(),
'remote_url' => null,
'preview_url' => $media->thumbnailUrl(),
'optimized_url' => $media->optimized_url,
'text_url' => null,
'meta' => null,
'description' => $media->caption,
'license' => $media->getLicense(),
'is_nsfw' => $media->is_nsfw,
'orientation' => $media->orientation,
'filter_name' => $media->filter_name,
'filter_class' => $media->version == 1 ? $media->filter_class : null,
'mime' => $media->mime,
'blurhash' => $media->blurhash ?? 'U4Rfzst8?bt7ogayj[j[~pfQ9Goe%Mj[WBay'
'text_url' => null,
'meta' => null,
'description' => $media->caption,
'license' => $media->getLicense(),
'is_nsfw' => $media->is_nsfw,
'orientation' => $media->orientation,
'filter_name' => $media->filter_name,
'filter_class' => $media->version == 1 ? $media->filter_class : null,
'mime' => $media->mime,
'blurhash' => $media->blurhash ?? 'U4Rfzst8?bt7ogayj[j[~pfQ9Goe%Mj[WBay',
];
if(config('media.hls.enabled') && $media->hls_transcoded_at != null && $media->hls_path) {
$res['hls_manifest'] = url(Storage::url($media->hls_path));
if ((bool) config('media.hls.enabled')) {
if ($media->hls_transcoded_at != null && $media->hls_path) {
$res['hls_manifest'] = url(Storage::url($media->hls_path));
}
}
if($media->width && $media->height) {
if ($media->width && $media->height) {
$res['meta'] = [
'focus' => [
'x' => 0,
'y' => 0
'y' => 0,
],
'original' => [
'width' => $media->width,
'height' => $media->height,
'size' => "{$media->width}x{$media->height}",
'aspect' => $media->width / $media->height
]
'aspect' => $media->width / $media->height,
],
];
}