Actualiser api.php

This commit is contained in:
2026-06-23 19:14:26 +02:00
parent 02676f49f5
commit 44e0888ca6
+26 -3
View File
@@ -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 <resume>
// 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');