예제 #1
0
 /**
  * @desc Process Lyrics wiki Albums
  *
  * @param array $artistData - Artist data
  * @param array $leanAlbumsData - Albums data collected from Artist page
  * @return array - Fill albums data
  */
 function processAlbums($artistData, $leanAlbumsData)
 {
     $albumsData = [];
     foreach ($leanAlbumsData as $albumData) {
         self::log("\t\tALBUM: " . $albumData['Album'] . PHP_EOL);
         // Check if Album has MediaWiki Title
         if ($albumData['title']) {
             $albumArticle = $this->articleFromTitle($albumData['title']);
             // Check if the page exists
             if ($albumArticle !== null) {
                 // Get full album data from Album page
                 $albumData = array_merge($albumData, $this->albumScraper->processArticle($albumArticle));
                 // Get songs from Album page NOT
                 // $leanSongsData = $this->albumScraper->getSongs( $albumArticle );
                 $this->articlesProcessed++;
             }
         }
         $leanSongsData = $albumData['songs'];
         $albumData = $this->albumScraper->sanitizeData($albumData, $this->albumScraper->getDataMap());
         $songsData = $this->processSongs($artistData, $albumData, $leanSongsData);
         $albumData['songs'] = $songsData;
         if (isset($albumData['id'])) {
             // Save only albums which are actual wiki pages
             $this->solr->saveAlbum($artistData, $albumData, $songsData);
         }
         $albumsData[] = $albumData;
     }
     return $albumsData;
 }