diff options
author | Fbenas <philbeansburton@gmail.com> | 2020-06-20 21:07:45 +0100 |
---|---|---|
committer | Fbenas <philbeansburton@gmail.com> | 2020-06-20 21:07:45 +0100 |
commit | 8d6e8b306d7836e4075a13ad98617bfe5afaa1a0 (patch) | |
tree | 99c44e28da231cac0d9e513aabc1ee0768972426 /app/Console/Commands/SyncVideos.php | |
parent | 897b68ac107f2fb0d4dc1d31ce96ce24c862eb27 (diff) |
Add new scripts for youtube downloading and syncing with existing matches
Diffstat (limited to 'app/Console/Commands/SyncVideos.php')
-rw-r--r-- | app/Console/Commands/SyncVideos.php | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/app/Console/Commands/SyncVideos.php b/app/Console/Commands/SyncVideos.php new file mode 100644 index 0000000..d29436d --- /dev/null +++ b/app/Console/Commands/SyncVideos.php @@ -0,0 +1,98 @@ +<?php + +namespace App\Console\Commands; + +use App\Rugby\Model; +use App\Youtube\Service; +use Illuminate\Console\Command; +use Illuminate\Support\Facades\Storage; + +class SyncVideos extends Command +{ + /** + * The name and signature of the console command. + * + * @var string + */ + protected $signature = 'sync:videos'; + + /** + * The console command description. + * + * @var string + */ + protected $description = 'Sync downloaded videos with existing matches'; + + /** + * Create a new command instance. + * + * @return void + */ + public function __construct() + { + parent::__construct(); + } + + /** + * Execute the console command. + * + * @return mixed + */ + public function handle() + { + $videos = Model\Video::whereNull('match_id')->get(); + + foreach ($videos as $video) { + $filename = $video->getFilename(); + + $tournaments = Model\Tournament::all()->filter( + function ($object) use ($filename) { + return $object->isMatch($filename); + } + ); + + $tournament_ids = $tournaments->pluck('id'); + + $teams = Model\Team::all()->filter( + function ($object) use ($filename) { + return $object->isMatch($filename); + } + ); + + $team_ids = $teams->pluck('name')->toArray(); + + $matches = $tournaments->first()->matches; + + foreach ($matches as $match) { + if (in_array($match->homeTeam()->first()->name, $team_ids)) { + if (in_array($match->awayTeam()->first()->name, $team_ids)) { + $match->videos()->save($video); + Storage::disk('local')->move( + 'youtube/video/' . $video->getFilename(), + 'public/matches/' . $video->getFilename() + ); + } + } + } + } + + // $service = new Service($url, $this->output); + // + // if ($format == 'video') { + // $service->downloadVideo('video'); + // } elseif ($format == 'audio') { + // $service->downloadAudio('audio'); + // } + // + // $video_model = Video::create( + // [ + // 'path' => $service->getFullPath() + // ] + // ); + // + // $this->info('Download of ' . $service->getTitle() . ' complete!'); + + return Command::SUCCESS; + } + +} |