option('force'); if ($videoId = $this->argument('video')) { $video = Video::find($videoId); if (! $video) { $this->error("Video #{$videoId} not found."); return self::FAILURE; } $videos = collect([$video]); } elseif ($this->option('all')) { $videos = Video::where('type', 'music')->get(); } else { $this->error('Pass a video id or --all.'); return self::FAILURE; } $dispatched = 0; foreach ($videos as $video) { $video->loadMissing('audioTracks'); if ($force || ! is_array($nas->getLyrics($video, null))) { GenerateLyricsJob::dispatch($video->id, null)->onConnection('database'); $dispatched++; } foreach ($video->audioTracks as $track) { if ($force || ! is_array($nas->getLyrics($video, $track))) { GenerateLyricsJob::dispatch($video->id, $track->id)->onConnection('database'); $dispatched++; } } $this->line("Queued lyrics for #{$video->id} — {$video->title}"); } $this->info("Dispatched {$dispatched} lyrics job(s) to the video-processing queue."); return self::SUCCESS; } }