فهرست منبع

Update MediaTransformers, include meta attribute with focus and dimensions

Daniel Supernault 4 سال پیش
والد
کامیت
f8cbe1e42c
2فایلهای تغییر یافته به همراه38 افزوده شده و 3 حذف شده
  1. 20 2
      app/Transformer/Api/Mastodon/v1/MediaTransformer.php
  2. 18 1
      app/Transformer/Api/MediaTransformer.php

+ 20 - 2
app/Transformer/Api/Mastodon/v1/MediaTransformer.php

@@ -9,7 +9,7 @@ class MediaTransformer extends Fractal\TransformerAbstract
 {
 {
     public function transform(Media $media)
     public function transform(Media $media)
     {
     {
-        return [
+        $res = [
             'id'            => (string) $media->id,
             'id'            => (string) $media->id,
             'type'          => lcfirst($media->activityVerb()),
             'type'          => lcfirst($media->activityVerb()),
             'url'           => $media->url(),
             'url'           => $media->url(),
@@ -17,7 +17,25 @@ class MediaTransformer extends Fractal\TransformerAbstract
             'preview_url'   => $media->thumbnailUrl(),
             'preview_url'   => $media->thumbnailUrl(),
             'text_url'      => null,
             'text_url'      => null,
             'meta'          => null,
             'meta'          => null,
-            'description'   => $media->caption
+            'description'   => $media->caption,
+            'blurhash'      => $media->blurhash
         ];
         ];
+
+        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;
     }
     }
 }
 }

+ 18 - 1
app/Transformer/Api/MediaTransformer.php

@@ -9,7 +9,7 @@ class MediaTransformer extends Fractal\TransformerAbstract
 {
 {
     public function transform(Media $media)
     public function transform(Media $media)
     {
     {
-        return [
+        $res = [
             'id'            => (string) $media->id,
             'id'            => (string) $media->id,
             'type'          => $media->activityVerb(),
             'type'          => $media->activityVerb(),
             'url'           => $media->url() . '?cb=1&_v=' . time(),
             'url'           => $media->url() . '?cb=1&_v=' . time(),
@@ -26,5 +26,22 @@ class MediaTransformer extends Fractal\TransformerAbstract
             'mime'          => $media->mime,
             'mime'          => $media->mime,
             'blurhash'      => $media->blurhash
             'blurhash'      => $media->blurhash
         ];
         ];
+
+        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;
     }
     }
 }
 }