Actualiser api.php
This commit is contained in:
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user