/** * @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; }