Actualiser api.php

This commit is contained in:
2026-07-02 16:17:05 +02:00
parent 90f738ac8e
commit 04b8c1efa4
+26 -8
View File
@@ -116,7 +116,7 @@ function emptyPhysicalResult() {
];
}
// ── NOUVELLE FONCTION : SCRAPPING GO-UPC.COM (MODIFIÉE) ──
// ── NOUVELLE FONCTION : SCRAPPING GO-UPC.COM (CORRIGÉE) ──
function fetchFromGoUpc($ean) {
$empty = emptyPhysicalResult();
$url = "https://go-upc.com/search?q=" . urlencode($ean);
@@ -132,20 +132,38 @@ function fetchFromGoUpc($ean) {
$empty['title'] = $title;
}
// ✅ NETTOYAGE DU TITRE
if (!empty($empty['title'])) {
$empty['title'] = html_entity_decode($empty['title'], ENT_QUOTES | ENT_HTML5, 'UTF-8');
// ✅ APPLIQUER cleanTitle() pour supprimer les suffixes comme "- DVD", "- Édition Collector"
$empty['title'] = cleanTitle($empty['title']);
// ✅ Supprimer le nom du réalisateur au début si présent
// Pattern : "Prénom Nom Titre du film" → "Titre du film"
// Exemple : "Lilly Wachowski Matrix" → "Matrix"
// Exemple : "Andrew Niccol Lord Of War" → "Lord Of War"
if (preg_match('/^([A-Z][a-z]+\s+[A-Z][a-z]+)\s+(.+)$/u', $empty['title'], $nameMatch)) {
$possibleDirector = $nameMatch[1];
$possibleTitle = $nameMatch[2];
// Vérifier si le "titre" restant semble être un vrai titre (pas juste un mot)
if (strlen($possibleTitle) > 3 && !preg_match('/^(DVD|Blu-ray|4K|VHS|CD|Vinyl)$/i', $possibleTitle)) {
$empty['director'] = $possibleDirector;
$empty['title'] = $possibleTitle;
}
}
$empty['title'] = trim($empty['title']);
}
// ✅ RÉCUPÉRATION DE L'IMAGE DEPUIS GO-UPC
// Chercher dans les figures product-image
if (preg_match('/<figure[^>]*class="product-image[^"]*"[^>]*>.*?<img[^>]*src="([^"]+\.(?:jpg|jpeg|png|webp))"/is', $html, $m)) {
$empty['poster'] = trim($m[1]);
} elseif (preg_match('/<img[^>]*src="([^"]+go-upc\.s3\.amazonaws\.com[^"]+)"/i', $html, $m)) {
$empty['poster'] = trim($m[1]);
}
// Nettoyage du titre
if (!empty($empty['title'])) {
$empty['title'] = html_entity_decode($empty['title'], ENT_QUOTES | ENT_HTML5, 'UTF-8');
$empty['title'] = trim($empty['title']);
}
if (!empty($empty['title'])) {
$empty['format'] = detectFormat($empty['title']);
}