Actualiser api.php
This commit is contained in:
@@ -340,6 +340,7 @@ function fetchTmdbPosterAndSynopsis($title, $year = '', $pdo = null) {
|
||||
|
||||
// ── FONCTION POUR RÉCUPÉRER LES DONNÉES DEPUIS BLU-RAY.COM ──
|
||||
function fetchFromBlurayCom($ean) {
|
||||
static $lastRequest = 0;
|
||||
$empty = [
|
||||
'title' => '', 'year' => '', 'director' => '', 'actors' => '',
|
||||
'poster' => '', 'description' => '', 'length' => '',
|
||||
@@ -350,6 +351,13 @@ function fetchFromBlurayCom($ean) {
|
||||
$ean = preg_replace('/[^0-9]/', '', (string)$ean);
|
||||
if (strlen($ean) < 8) return $empty;
|
||||
|
||||
// ✅ THROTTLE : Attendre 3 secondes entre chaque requête pour éviter le blocage
|
||||
$now = microtime(true);
|
||||
if ($lastRequest > 0 && ($now - $lastRequest) < 3) {
|
||||
usleep((int)(3 - ($now - $lastRequest)) * 1000000);
|
||||
}
|
||||
$lastRequest = microtime(true);
|
||||
|
||||
// ÉTAPE 1 : Recherche par EAN sur Blu-ray.com
|
||||
$searchUrl = "https://www.blu-ray.com/movies/search.php?ean=" . urlencode($ean) . "&action=search";
|
||||
|
||||
@@ -364,13 +372,15 @@ function fetchFromBlurayCom($ean) {
|
||||
CURLOPT_HTTPHEADER => [
|
||||
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
|
||||
'Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7',
|
||||
'Referer: https://www.blu-ray.com/'
|
||||
'Referer: https://www.blu-ray.com/',
|
||||
'Connection: keep-alive'
|
||||
]
|
||||
]);
|
||||
$searchHtml = curl_exec($ch);
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
// ✅ GESTION D'ERREUR : Si Blu-ray.com bloque (403, 429, 503), on retourne vide
|
||||
if (!$searchHtml || $httpCode !== 200) {
|
||||
error_log("Blu-ray.com: ❌ Échec recherche EAN $ean (HTTP $httpCode)");
|
||||
return $empty;
|
||||
@@ -385,6 +395,9 @@ function fetchFromBlurayCom($ean) {
|
||||
$movieUrl = $matches[1];
|
||||
$movieId = $matches[2];
|
||||
|
||||
// ✅ THROTTLE avant la 2ème requête
|
||||
usleep(1000000); // 1 seconde
|
||||
|
||||
// ÉTAPE 2 : Récupérer la page du film
|
||||
$ch2 = curl_init($movieUrl);
|
||||
curl_setopt_array($ch2, [
|
||||
@@ -397,14 +410,16 @@ function fetchFromBlurayCom($ean) {
|
||||
CURLOPT_HTTPHEADER => [
|
||||
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
|
||||
'Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7',
|
||||
'Referer: https://www.blu-ray.com/'
|
||||
'Referer: https://www.blu-ray.com/',
|
||||
'Connection: keep-alive'
|
||||
]
|
||||
]);
|
||||
$movieHtml = curl_exec($ch2);
|
||||
$httpCode2 = curl_getinfo($ch2, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch2);
|
||||
|
||||
if (!$movieHtml) {
|
||||
error_log("Blu-ray.com: ❌ Impossible de charger la page du film $movieUrl");
|
||||
if (!$movieHtml || $httpCode2 !== 200) {
|
||||
error_log("Blu-ray.com: ❌ Impossible de charger la page du film $movieUrl (HTTP $httpCode2)");
|
||||
return $empty;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user