This commit is contained in:
ct
2025-06-14 23:35:16 +08:00
parent 0f7fa96c40
commit 4547fe61ef
13 changed files with 1404 additions and 51 deletions

View File

@@ -0,0 +1,38 @@
<?php
namespace App\Helpers\FirstParty\Maintenance;
use App\Models\MemeMedia;
use ProtoneMedia\LaravelFFMpeg\Support\FFMpeg;
class MemeMediaMaintenance
{
public static function populateDurations()
{
$meme_medias_with_no_duration = self::getMemeMediasWithNoDuration();
$total = $meme_medias_with_no_duration->count();
foreach ($meme_medias_with_no_duration as $key => $meme_media) {
$current = $key + 1;
dump("Processing {$current}/{$total}: {$meme_media->webm_url}");
$meme_media->duration = self::getDurationUsingFfmpeg($meme_media);
$meme_media->save();
}
}
private static function getDurationUsingFfmpeg($meme_media)
{
$duration_milliseconds = FFMpeg::openUrl($meme_media->webm_url)->getDurationInMiliseconds();
$duration_seconds = ($duration_milliseconds / 1000);
return $duration_seconds;
}
private static function getMemeMediasWithNoDuration()
{
return MemeMedia::whereNull('duration')->get();
}
}

View File

@@ -8,4 +8,9 @@ public function index()
{
//
}
public function populateDuration()
{
\App\Helpers\FirstParty\Maintenance\MemeMediaMaintenance::populateDurations();
}
}