/** * @param InputInterface $input * @param OutputInterface $output */ protected function execute(InputInterface $input, OutputInterface $output) { $shows = $input->getArgument('shows'); if (!$shows) { $output->writeln('You have to provide at least one TVMaze show ID'); return; } //Let's convert them to integer: $shows = array_map('intval', $shows); //Now let's fetch episodes: $episodes = Episode::join('series', 'series.id', '=', 'episodes.serie_id_internal', 'inner')->whereIn('series.external_id', $shows)->orderBy('episodes.airdate', 'ASC')->select(['episodes.id', 'series.title as series_title', 'episodes.title', 'episodes.season_id', 'episodes.episode_id', 'episodes.is_special', 'episodes.url'])->get()->toArray(); $rows = array_map('array_values', $episodes); $table = new Table($output); $table->setHeaders(array('Episode ID', 'Show', 'Title', 'Season', 'Episode', 'Is Special?', 'URL'))->setRows($rows); $table->render(); }
/** * @param InputInterface $input * @param OutputInterface $output * * @return string Output to console */ protected function execute(InputInterface $input, OutputInterface $output) { $group = $input->getArgument('group'); if (!$group) { $output->writeln('<fg=red>Error: You have to provide the group name</>'); return; } $watchListGroup = WatchlistGroup::with('watchlists')->where('title', $group)->first(); if (!$watchListGroup) { $output->writeln('<fg=red>Error: No watchlist group found</>'); return; } //Let's get the ID of of the shows $shows = $watchListGroup->watchlists->pluck('tvmaze_id')->toArray(); //Now let's fetch episodes: $episodes = Episode::join('series', 'series.id', '=', 'episodes.serie_id_internal', 'inner')->whereIn('series.external_id', $shows)->orderBy('episodes.airdate', 'ASC')->select(['episodes.id', 'series.title as series_title', 'episodes.title', 'episodes.season_id', 'episodes.episode_id', 'episodes.is_special', 'episodes.url'])->get()->toArray(); $rows = array_map('array_values', $episodes); $table = new Table($output); $table->setHeaders(array('Episode ID', 'Show', 'Title', 'Season', 'Episode', 'Is Special?', 'URL'))->setRows($rows); $table->render(); }