浏览代码

Update StoryController

Daniel Supernault 4 年之前
父节点
当前提交
ae46bad70a
共有 1 个文件被更改,包括 26 次插入4 次删除
  1. 26 4
      app/Http/Controllers/StoryController.php

+ 26 - 4
app/Http/Controllers/StoryController.php

@@ -13,6 +13,9 @@ use Cache, Storage;
 use Image as Intervention;
 use App\Services\FollowerService;
 use App\Services\MediaPathService;
+use FFMpeg;
+use FFMpeg\Coordinate\Dimension;
+use FFMpeg\Format\Video\X264;
 
 class StoryController extends Controller
 {
@@ -49,11 +52,27 @@ class StoryController extends Controller
 		$story->size = $photo->getSize();
 		$story->save();
 
+		$url = $story->path;
+
+		if($story->type === 'video') {
+			$video = FFMpeg::open($path);
+			$width = $video->getVideoStream()->get('width');
+			$height = $video->getVideoStream()->get('height');
+
+
+			if($width !== 1080 || $height !== 1920) {
+				Storage::delete($story->path);
+				$story->delete();
+				abort(422, 'Invalid video dimensions, must be 1080x1920');
+			}
+		}
+
 		return [
 			'code' => 200,
 			'msg'  => 'Successfully added',
 			'media_id' => (string) $story->id,
-			'media_url' => url(Storage::url($story->path))
+			'media_url' => url(Storage::url($url)),
+			'media_type' => $story->type
 		];
 	}
 
@@ -108,9 +127,11 @@ class StoryController extends Controller
 			abort(400, 'Invalid or missing media.');
 		}
 
-		$img = Intervention::make($path);
-		$img->crop($width, $height, $x, $y);
-		$img->save($path, config('pixelfed.image_quality'));
+		if($story->type === 'photo') {
+			$img = Intervention::make($path);
+			$img->crop($width, $height, $x, $y);
+			$img->save($path, config('pixelfed.image_quality'));
+		}
 
 		return [
 			'code' => 200,
@@ -237,6 +258,7 @@ class StoryController extends Controller
 				'linkText' => null,
 				'time' => $s->created_at->format('U'),
 				'expires_at' => (int)  $s->expires_at->format('U'),
+				'created_ago' => $s->created_at->diffForHumans(null, true, true),
 				'seen' => $s->seen()
 			];
 		})->toArray();