feat(admin): parse video resolution in upload video action (#609)

This commit is contained in:
Kyrch
2024-03-08 22:13:35 -03:00
committed by GitHub
parent c7a9f6af4d
commit 5a9fa858b3
2 changed files with 12 additions and 6 deletions
@@ -12,6 +12,7 @@ use App\Enums\Models\Wiki\VideoOverlap;
use App\Enums\Models\Wiki\VideoSource;
use App\Models\Wiki\Anime\Theme\AnimeThemeEntry;
use App\Models\Wiki\Video;
use App\Rules\Wiki\Submission\SubmissionRule;
use Exception;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Arr;
@@ -100,7 +101,12 @@ class UploadVideoAction extends UploadAction
];
if (Arr::has($this->attributes, Video::ATTRIBUTE_RESOLUTION)) {
$attributes[Video::ATTRIBUTE_RESOLUTION] = Arr::get($this->attributes, Video::ATTRIBUTE_RESOLUTION);
if (!empty($this->attributes[Video::ATTRIBUTE_RESOLUTION])) {
$attributes[Video::ATTRIBUTE_RESOLUTION] = Arr::get($this->attributes, Video::ATTRIBUTE_RESOLUTION);
} else {
$ffprobeData = SubmissionRule::$ffprobeData;
$attributes[Video::ATTRIBUTE_RESOLUTION] = intval($ffprobeData['streams'][0]['height']);
}
}
if (Arr::has($this->attributes, Video::ATTRIBUTE_NC)) {
$attributes[Video::ATTRIBUTE_NC] = Arr::get($this->attributes, Video::ATTRIBUTE_NC);
+5 -5
View File
@@ -22,7 +22,7 @@ abstract class SubmissionRule implements ValidationRule, ValidatorAwareRule
*
* @var array
*/
protected array $ffprobeData;
public static array $ffprobeData;
/**
* The loudness stats of the input file as parsed by the ffmpeg audio filter.
@@ -47,7 +47,7 @@ abstract class SubmissionRule implements ValidationRule, ValidatorAwareRule
$ffprobeData = $this->getFFprobeData($file);
$validator->setValue('ffprobeData', $ffprobeData);
}
$this->ffprobeData = $ffprobeData;
static::$ffprobeData = $ffprobeData;
$loudnessStats = Arr::get($validator->getData(), 'loudnessStats');
if ($loudnessStats === null && $file !== null) {
@@ -98,7 +98,7 @@ abstract class SubmissionRule implements ValidationRule, ValidatorAwareRule
*/
protected function streams(): array
{
return Arr::get($this->ffprobeData, 'streams', []);
return Arr::get(static::$ffprobeData, 'streams', []);
}
/**
@@ -108,7 +108,7 @@ abstract class SubmissionRule implements ValidationRule, ValidatorAwareRule
*/
protected function format(): array
{
return Arr::get($this->ffprobeData, 'format', []);
return Arr::get(static::$ffprobeData, 'format', []);
}
/**
@@ -118,7 +118,7 @@ abstract class SubmissionRule implements ValidationRule, ValidatorAwareRule
*/
protected function chapters(): array
{
return Arr::get($this->ffprobeData, 'chapters', []);
return Arr::get(static::$ffprobeData, 'chapters', []);
}
/**