protected function execute(InputInterface $input, OutputInterface $output) { $show = new Show(); $show->setName($input->getArgument('show')); $episode = Episode::fromString($input->getArgument('episode')); $magnet = $this->trackerClient->lookupTorrentMagnetUrl($show, $episode); if (!$magnet) { $output->writeln("Nothing found"); } else { $output->writeln("Found: {$magnet}\n"); } }
/** * @param Show $show * @param Episode $episode * @param bool $recurse * @return bool */ private function tryEpisode(Show $show, Episode $episode, $recurse = false) { $magnet = $this->tracker->lookupTorrentMagnetUrl($show, $episode); if (!$magnet) { return false; } $this->output->writeln("Found new episode {$show} > {$episode}"); $this->magnetRepo->save($magnet); $show->setLastEpisode($episode); $this->showRepo->save($show); if ($recurse) { $this->tryEpisode($show, $episode->nextEpisode()); } return true; }