// Запрос releaseId |
foreach($db->query('SELECT * FROM base WHERE тут хз чё там у Вас') as $row) |
{ |
// Разделим название пополам |
$track = explode(' - ', $row['track']); |
// Закодируем запрос |
$query = urlencode('artist:'.$track[0].' release:'.$track[1]); |
// URL запроса releaseId |
$url = 'https://musicbrainz.org/ws/2/release/?query='.$query.'&fmt=json'; |
// Опции CURL |
$options = [ |
CURLOPT_USERAGENT => 'тут нужно указать Ваш сайт и мыло', |
CURLOPT_RETURNTRANSFER => true, |
CURLOPT_FOLLOWLOCATION => true, |
]; |
$ch = curl_init($url); |
curl_setopt_array($ch, $options); |
$response = curl_exec($ch); |
curl_close($ch); |
// Раскодируем полученные данные |
$result = json_decode($response, true); |
// Если есть releases |
if(isset($result['releases'][0]['id'])) |
{ |
// Обновим запись releaseId |
$stmt = $db->prepare('UPDATE base SET releaseId = :releaseId WHERE id = :id LIMIT 1'); |
$stmt->execute([':releaseId' => $result['releases'][0]['id'], ':id' => $row['id']]); |
} |
sleep(1); |
} |
|
// Выкачиваем обложки |
foreach($db->query('SELECT * FROM base WHERE тут хз чё там у Вас') as $row) |
{ |
// Путь хранения файлов |
$cacheFile = $setup['cover_cache'].$row['releaseId'].'.jpg'; |
// Если файла нет, продолжаем |
if(file_exists($cacheFile)) continue; |
// URL откуда будем брать cover файлы |
$url = 'https://coverartarchive.org/release/'.$row['releaseId'].'/front-500'; |
// Опции CURL |
$options = [ |
CURLOPT_RETURNTRANSFER => true, |
CURLOPT_FOLLOWLOCATION => true, |
]; |
$ch = curl_init($url); |
curl_setopt_array($ch, $options); |
$response = curl_exec($ch); |
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); |
curl_close($ch); |
// Если код ответа 200 |
if($httpCode === 200) |
{ |
// Скачиваем файл |
file_put_contents($cacheFile, $response); |
} |
// Если код ответа 404 |
if($httpCode === 404) |
{ |
// Удалим записанный releaseId |
$stmt = $db->prepare('UPDATE base SET releaseId = NULL WHERE id = :id LIMIT 1'); |
$stmt->execute([':id' => $row['id']]); |
} |
sleep(1); |
} |