Преглед изворни кода

Update StoryController, allow video stories

Daniel Supernault пре 5 година
родитељ
комит
b3b220b9b3
1 измењених фајлова са 15 додато и 12 уклоњено
  1. 15 12
      app/Http/Controllers/StoryController.php

+ 15 - 12
app/Http/Controllers/StoryController.php

@@ -24,7 +24,7 @@ class StoryController extends Controller
 			'file' => function() {
 				return [
 					'required',
-					'mimes:image/jpeg,image/png',
+					'mimes:image/jpeg,image/png,video/mp4',
 					'max:' . config('pixelfed.max_photo_size'),
 				];
 			},
@@ -42,7 +42,7 @@ class StoryController extends Controller
 		$story = new Story();
 		$story->duration = 3;
 		$story->profile_id = $user->profile_id;
-		$story->type = 'photo';
+		$story->type = Str::endsWith($photo->getMimeType(), 'mp4') ? 'video' :'photo';
 		$story->mime = $photo->getMimeType();
 		$story->path = $path;
 		$story->local = true;
@@ -65,7 +65,8 @@ class StoryController extends Controller
 		$mimes = explode(',', config('pixelfed.media_types'));
 		if(in_array($photo->getMimeType(), [
 			'image/jpeg',
-			'image/png'
+			'image/png',
+			'video/mp4'
 		]) == false) {
 			abort(400, 'Invalid media type');
 			return;
@@ -73,11 +74,13 @@ class StoryController extends Controller
 
 		$storagePath = "public/_esm.t2/{$monthHash}/{$sid}/{$rid}";
 		$path = $photo->store($storagePath);
-		$fpath = storage_path('app/' . $path);
-		$img = Intervention::make($fpath);
-		$img->orientate();
-		$img->save($fpath, config('pixelfed.image_quality'));
-		$img->destroy();
+		if(in_array($photo->getMimeType(), ['image/jpeg','image/png',])) {
+			$fpath = storage_path('app/' . $path);
+			$img = Intervention::make($fpath);
+			$img->orientate();
+			$img->save($fpath, config('pixelfed.image_quality'));
+			$img->destroy();
+		}
 		return $path;
 	}
 
@@ -164,7 +167,7 @@ class StoryController extends Controller
 		->map(function($s, $k) {
 			return [
 				'id' => (string) $s->id,
-				'type' => 'photo',
+				'type' => Str::endsWith($s->path, '.mp4') ? 'video' :'photo',
 				'length' => 3,
 				'src' => url(Storage::url($s->path)),
 				'preview' => null,
@@ -198,7 +201,7 @@ class StoryController extends Controller
 		
 		$res = [
 			'id' => (string) $story->id,
-			'type' => 'photo',
+			'type' => Str::endsWith($story->path, '.mp4') ? 'video' :'photo',
 			'length' => 3,
 			'src' => url(Storage::url($story->path)),
 			'preview' => null,
@@ -233,7 +236,7 @@ class StoryController extends Controller
 		->map(function($s, $k) {
 			return [
 				'id' => $s->id,
-				'type' => 'photo',
+				'type' => Str::endsWith($s->path, '.mp4') ? 'video' :'photo',
 				'length' => 3,
 				'src' => url(Storage::url($s->path)),
 				'preview' => null,
@@ -315,7 +318,7 @@ class StoryController extends Controller
 			->map(function($s, $k) {
 				return [
 					'id' => $s->id,
-					'type' => 'photo',
+					'type' => Str::endsWith($s->path, '.mp4') ? 'video' :'photo',
 					'length' => 3,
 					'src' => url(Storage::url($s->path)),
 					'preview' => null,