Rev 11 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// BUGBUG {"message": "You are making requests too quickly."}function findDiscogsMaster($str) {$vendors = Vendors::getInstance();$config = $vendors->getVendor(Vendors::DISCOGS);$_SESSION["discogs"] = "";$url = "https://api.discogs.com/database/search?";$url .= "token=";$url .= $config['token'];if (empty($_SESSION["barcode"]['Type'])) {$url .= "&type=master";$url .= "&q=";$url .= urlencode($str);} else {$url .= "&barcode=";$url .= $_SESSION["barcode"]['Value'];}$originalUserAgent = ini_get('user_agent');ini_set('user_agent', $config['userAgent']);$searchResp = file_get_contents($url);$searchResp = utf8_encode($searchResp);$searchResp = json_decode($searchResp);$_SESSION["discogs"] .= "<div class=\"d-flex bg-secondary\">";if (!empty($searchResp->{'message'})) {if ($searchResp->{'message'} == "You are making requests too quickly.") {// bugbugini_set('user_agent', $originalUserAgent);return;}}if ($searchResp->{'pagination'}->{'items'} < 1) {ini_set('user_agent', $originalUserAgent);return;}$masterCount = 0;$processedMasters = [];foreach ($searchResp->{'results'} as $searchey => $searchValue) {if ($searchValue->{'type'} != "master" && empty($_SESSION["barcode"]['Type'])) {continue;}if (++$masterCount > 5) {break;}if (in_array($searchValue->{'master_id'}, $processedMasters)) {continue;}$processedMasters[] = $searchValue->{'master_id'};$masterResp = file_get_contents($searchValue->{'master_url'});$masterResp = utf8_encode($masterResp);$masterResp = json_decode($masterResp);if (!empty($searchResp->{'message'})) {if ($searchResp->{'message'} == "You are making requests too quickly.") {// bugbugini_set('user_agent', $originalUserAgent);return;}}$_SESSION["discogs"] .= "<div class=\"p-2 flex-fill bg-info\">";$_SESSION["discogs"] .= processMaster($masterResp, $searchValue->{'thumb'}, $masterCount);$_SESSION["discogs"] .= "</div>";}$_SESSION["discogs"] .= "</div>";ini_set('user_agent', $originalUserAgent);return;}function processMaster($master, $thumbnail, $cnt) {$str = "<img class=\"img-fluid\" src=\"" . $thumbnail . "\" alt=\"Discogs Master Thumbnail\">";$str .= "<table>";$str .= "<tr><td>Title:</td><td>" . $master->{'title'} . "</td></tr>";$artists = [];foreach ($master->{'artists'} as $key => $value) {$artists[] = trim(preg_replace('/\([0-9]+\)$/', "", $value->{'name'}));}$str .= "<tr><td>Artist:</td><td>" . join(", ", $artists) . "</td></tr>";$str .= "<tr><td>Year:</td><td>" . $master->{'year'} . "</td></tr>";$genres = [];foreach ($master->{'genres'} as $key => $value) {$genres[] = $value;}$str .= "<tr><td>Genre:</td><td>" . join(", ", $genres) . "</td></tr>";if (isset($master->{'styles'})) {$styles = [];foreach ($master->{'styles'} as $key => $value) {$styles[] = $value;}}$str .= "<tr><td>Style:</td><td>" . join(", ", $styles) . "</td></tr>";$str .= "<tr><td colspan=\"2\"><span class=\"font-weight-lighter small\">(Data provided by <a href=\"" . $master->{'uri'} . "\" target=\"_blank\">Discogs)</a></span></td></tr>";$str .= "</table>";$str .= "<button id=\"track" . $cnt . "\" type=\"button\" class=\"btn btn-primary small\" data-toggle=\"collapse\" data-target=\"#trackCollapse" . $cnt . "\">Tracks</button>";$str .= "<div id=\"trackCollapse" . $cnt . "\" class=\"collapse\">";$str .= "<ol>";foreach ($master->{'tracklist'} as $key => $value) {$str .= "<li>" . $value->{'title'};$trackArtists = [];if (isset($value->{'artists'})) {foreach ($value->{'artists'} as $taKey => $taValue) {$trackArtists[] = trim(preg_replace('/\([0-9]+\)$/', "", $taValue->{'name'}));}if (count($trackArtists)) {$str .= " - " . join(", ", $trackArtists);}}if (!empty($value->{'duration'})) {$str .= " [" . $value->{'duration'} . "]";}$str .= "</li>";}$str .= "</ol></div>";return $str;}