Ejemplo n.º 1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $artistQuery = new ArtistQuery($this->getContainer()->get('doctrine_mongodb')->getManager());
     $youtubeSearch = $this->getContainer()->get('youtubeSearch');
     $artists = $artistQuery->notProcessed()->setLimit(5)->getList();
     foreach ($artists as $artist) {
         if ($artist->getName() != '[unknown]') {
             if (count($artist->getAlbums())) {
                 foreach ($artist->getAlbums() as $album) {
                     foreach ($album->getTracks() as $track) {
                         $result = $youtubeSearch->setQuery($artist->getName() . ' - ' . $track->getName())->getResults();
                         if (isset($result->items)) {
                             foreach ($result->items as $item) {
                                 if (strpos(strtolower($item->snippet->title), strtolower($track->getName()))) {
                                     $output->writeln($item->id->videoId . ' ' . $artist->getName() . ' ' . $track->getName());
                                     $track->setYoutubeId($item->id->videoId);
                                     if ($this->hasNoInvalidateWords($item->snippet->title, $track->getName())) {
                                         break;
                                     }
                                 }
                             }
                         }
                     }
                 }
             } else {
                 $artist->setDisabled();
             }
         }
         $artist->setProcessed();
         $artistQuery->persist($artist);
     }
 }