This commit is contained in:
ct
2025-06-20 13:03:52 +08:00
parent eef45fdc9d
commit b502120091
22 changed files with 426 additions and 164 deletions

View File

@@ -2,11 +2,44 @@
namespace App\Helpers\FirstParty\Maintenance;
use App\Helpers\FirstParty\AI\OpenAI;
use App\Models\MemeMedia;
use ProtoneMedia\LaravelFFMpeg\Support\FFMpeg;
class MemeMediaMaintenance
{
public static function patchMemeKeywords()
{
$meme_medias = MemeMedia::whereNull('action_keywords')->get();
foreach ($meme_medias as $key => $meme_media) {
dump('Processing '.$key + 1 .'/'.$meme_medias->count().': '.$meme_media->name);
$meme_keywords_response = OpenAI::getMemeKeywords($meme_media->name, $meme_media->description);
$meme_keywords_output = json_decode(OpenAI::getOpenAIOutput($meme_keywords_response));
$meme_media->description = $meme_keywords_output->description;
$meme_media->action_keywords = $meme_keywords_output->action_keywords;
$meme_media->emotion_keywords = $meme_keywords_output->emotion_keywords;
$meme_media->misc_keywords = $meme_keywords_output->misc_keywords;
$meme_media->save();
}
}
public static function addMemeKeywordsToTags()
{
$meme_medias = MemeMedia::all();
foreach ($meme_medias as $key => $meme_media) {
$meme_media->attachTags($meme_media->action_keywords, 'meme_media_action');
$meme_media->attachTags($meme_media->emotion_keywords, 'meme_media_emotion');
$meme_media->attachTags($meme_media->misc_keywords, 'meme_media_misc');
}
}
public static function populateDurations()
{