From 44e0888ca646bac1d1e95f7189caca95ea0eb53e Mon Sep 17 00:00:00 2001 From: Cedric Date: Tue, 23 Jun 2026 19:14:26 +0200 Subject: [PATCH] Actualiser api.php --- api.php | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/api.php b/api.php index 4cd8eb1..f360c9e 100644 --- a/api.php +++ b/api.php @@ -140,7 +140,9 @@ function fetchUPCitemdb($ean, $pdo) { // ── 1.5 API DVDFr (Spécial Jaquettes & Synopsis FR) ── function fetchDVDFr($ean, $pdo) { if (empty($ean) || strlen($ean) < 8) return null; - $cacheKey = 'dvdfr_data_' . md5($ean); // Nouvelle clé de cache + + // 🔥 On change la clé de cache (v2) pour forcer le système à oublier les mauvais textes + $cacheKey = 'dvdfr_data_v2_' . md5($ean); $cached = getCache($pdo, $cacheKey); if ($cached) return json_decode($cached, true); @@ -155,10 +157,31 @@ function fetchDVDFr($ean, $pdo) { $dvd = $xml->dvd[0]; $poster = isset($dvd->cover) ? (string)$dvd->cover : ''; - // Le synopsis chez DVDFr se trouve dans la balise - // strip_tags permet d'enlever les balises HTML ou paragraphes parasites $synopsis = isset($dvd->resume) ? trim(strip_tags((string)$dvd->resume)) : ''; + // 1. Correction du bug d'encodage (les fameux "é") + if (strpos($synopsis, 'Ã') !== false) { + // Rétablit les vrais accents français + $synopsis = utf8_decode($synopsis); + } + + // 2. Filtre anti-pollution (Vendeurs / Annonces) + $synopsisLower = strtolower($synopsis); + $badWords = ['sous blister', 'vendeur', 'colissimo', 'expédition', 'livraison', 'ouvrables', 'garantie', 'produit neuf']; + $isGarbage = false; + + foreach ($badWords as $word) { + if (strpos($synopsisLower, $word) !== false) { + $isGarbage = true; + break; + } + } + + // Si c'est une annonce vendeur OU que le texte est anormalement court (< 30 caractères) + if ($isGarbage || strlen($synopsis) < 30) { + $synopsis = ''; // On vide le champ ! + } + $data = ['poster' => $poster, 'synopsis' => $synopsis]; setCache($pdo, $cacheKey, json_encode($data), 'dvdfr');