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) ──
|
// ── 1.5 API DVDFr (Spécial Jaquettes & Synopsis FR) ──
|
||||||
function fetchDVDFr($ean, $pdo) {
|
function fetchDVDFr($ean, $pdo) {
|
||||||
if (empty($ean) || strlen($ean) < 8) return null;
|
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);
|
$cached = getCache($pdo, $cacheKey);
|
||||||
if ($cached) return json_decode($cached, true);
|
if ($cached) return json_decode($cached, true);
|
||||||
@@ -155,10 +157,31 @@ function fetchDVDFr($ean, $pdo) {
|
|||||||
$dvd = $xml->dvd[0];
|
$dvd = $xml->dvd[0];
|
||||||
$poster = isset($dvd->cover) ? (string)$dvd->cover : '';
|
$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)) : '';
|
$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];
|
$data = ['poster' => $poster, 'synopsis' => $synopsis];
|
||||||
|
|
||||||
setCache($pdo, $cacheKey, json_encode($data), 'dvdfr');
|
setCache($pdo, $cacheKey, json_encode($data), 'dvdfr');
|
||||||
|
|||||||
Reference in New Issue
Block a user