mirror of
https://github.com/AnimeThemes/animethemes-server.git
synced 2026-07-11 01:24:46 +02:00
feat(admin): parse video resolution in upload video action (#609)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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', []);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user