From db4b030087098997abdcf2558aac4d3e28cb0dd7 Mon Sep 17 00:00:00 2001 From: Cedric Date: Fri, 26 Jun 2026 13:07:17 +0200 Subject: [PATCH] Actualiser api.php --- api.php | 121 +++++++++++++++++++++++++------------------------------- 1 file changed, 54 insertions(+), 67 deletions(-) diff --git a/api.php b/api.php index b889705..53b010c 100644 --- a/api.php +++ b/api.php @@ -120,8 +120,8 @@ function extractYear($dateStr) { return ''; } -// ── FONCTION POUR RÉCUPÉRER LES IMAGES DEPUIS NOTRECINEMA.COM ── -function fetchNotreCinema($title, $year = '', $ean = '', $pdo = null) { +// ── FONCTION POUR RÉCUPÉRER LES IMAGES DEPUIS CINEMAPASSION.COM ── +function fetchCinemaPassion($title, $year = '', $ean = '', $pdo = null) { $defaultPoster = 'assets/img/default_physical_media.jpg'; if (empty($title)) { @@ -131,60 +131,44 @@ function fetchNotreCinema($title, $year = '', $ean = '', $pdo = null) { $cleanTitle = cleanTitle($title); $userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'; - // ÉTAPE 1 : Recherche via l'URL de recherche de notrecinema.com - $searchUrl = "https://www.notrecinema.com/communaute/recherche.php3?recherche=" . urlencode($cleanTitle); - if (!empty($year)) { - $searchUrl .= "&annee=" . $year; - } + // ÉTAPE 1 : Recherche sur cinemapassion.com + $searchUrl = "https://www.cinemapassion.com/recherche.php?recherche=" . urlencode($cleanTitle); $searchRes = httpGet($searchUrl, 10, $userAgent); if ($searchRes) { - // Extraire l'ID du film depuis les liens vers les fiches - // Format : /communaute/v1_detail_film.php3?lefilm=123 - if (preg_match('/v1_detail_film\.php3\?lefilm=(\d+)/i', $searchRes, $matches)) { - $filmId = $matches[1]; + // Extraire le lien vers la page du film + // Pattern typique : ou similaire + if (preg_match('/]*>' . preg_quote($cleanTitle, '/') . '/i', $searchRes, $matches)) { + $filmUrl = $matches[1]; + if (strpos($filmUrl, 'http') !== 0) { + $filmUrl = 'https://www.cinemapassion.com' . (strpos($filmUrl, '/') === 0 ? '' : '/') . $filmUrl; + } - // ÉTAPE 2 : Récupérer la page des jaquettes - $jaquettesUrl = "https://www.notrecinema.com/communaute/pdf/complete.php3?lefilm=" . $filmId; - $jaquettesRes = httpGet($jaquettesUrl, 10, $userAgent); + $filmRes = httpGet($filmUrl, 10, $userAgent); - if ($jaquettesRes) { + if ($filmRes) { $posterUrl = null; - // Méthode 1 : Extraire depuis data-src des img.poster (lazy loading) - if (preg_match_all('/]*class=[\'"]poster[\'"][^>]*data-src=[\'"]([^\'"]+)[\'"][^>]*>/i', $jaquettesRes, $imgMatches)) { - if (!empty($imgMatches[1])) { - $posterUrl = $imgMatches[1][0]; - } + // Méthode 1 : Chercher l'image d'affiche principale + if (preg_match('/]*class=[\'"](?:affiche|poster|movie-poster)[^"]*"[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', $filmRes, $imgMatches)) { + $posterUrl = $imgMatches[1]; } - - // Méthode 2 : Fallback sur les images dans