From ae0cc842bffd23eab9fa3f7012f8509a0b313c71 Mon Sep 17 00:00:00 2001 From: Cedric Date: Tue, 23 Jun 2026 08:13:51 +0200 Subject: [PATCH] Actualiser api.php --- api.php | 48 +++++++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/api.php b/api.php index 6ba4f3c..01d04eb 100644 --- a/api.php +++ b/api.php @@ -348,7 +348,7 @@ switch ($action) { else { http_response_code(400); echo json_encode(["success" => false, "error" => "Aucun élément sélectionné."]); } break; - // ── IMPORT PAR LOTS CSV (CROISEMENT UPC + TMDB) ── + // ── IMPORT PAR LOTS CSV (CROISEMENT UPC + TMDB) ── case 'import_batch': checkAuth($pdo); $items = $data['items'] ?? []; @@ -385,7 +385,7 @@ switch ($action) { $format = $rowData['format'] ?? detectFormat($title, $description); $poster = $rowData['poster'] ?? ''; - // 🔥 Extraction des acteurs depuis le CSV (colonne ensemble ou creators) + // 🔥 Extraction des acteurs depuis le CSV $csvActors = $rowData['ensemble'] ?? $rowData['creators'] ?? ''; $actors = ''; if (!empty($csvActors)) { @@ -404,25 +404,35 @@ switch ($action) { } } - // 2. TMDB (Écrase les données CSV avec les données officielles) - if ($tmdbApiKey && !empty($title)) { - $tmdbData = fetchTMDBFull($title, $year, $tmdbApiKey, $pdo); - if ($tmdbData) { - if (!empty($tmdbData['title'])) $title = $tmdbData['title']; - - // 🔥 FIX : Gestion intelligente des réalisateurs (Coffrets / Anthologies) - if (empty($director)) { - // Si le CSV n'a pas de réalisateur, on prend celui de TMDB - $director = $tmdbData['director'] ?? ''; - } elseif (!empty($tmdbData['director']) && strpos($director, ',') === false && strpos($tmdbData['director'], ',') !== false) { - // Si le CSV a 1 seul réalisateur mais que TMDB en trouve plusieurs, on met à jour - $director = $tmdbData['director']; + // 2. TMDB (Écrase les données CSV avec les données officielles) + if ($tmdbApiKey && !empty($title)) { + $tmdbData = fetchTMDBFull($title, $year, $tmdbApiKey, $pdo); + if ($tmdbData) { + if (!empty($tmdbData['title'])) $title = $tmdbData['title']; + + // 🔥 FIX : Gestion intelligente des réalisateurs (Coffrets / Anthologies) + if (empty($director)) { + $director = $tmdbData['director'] ?? ''; + } elseif (!empty($tmdbData['director']) && strpos($director, ',') === false && strpos($tmdbData['director'], ',') !== false) { + $director = $tmdbData['director']; + } + + if (empty($year) && !empty($tmdbData['year'])) $year = $tmdbData['year']; + if (empty($length) && !empty($tmdbData['length'])) $length = $tmdbData['length']; + if (empty($poster) && !empty($tmdbData['poster'])) $poster = $tmdbData['poster']; + + // 🔥 Récupération du Synopsis officiel + if (!empty($tmdbData['overview'])) { + $description = $tmdbData['overview']; + } + // 🔥 Récupération des Acteurs officiels (Top 4) + if (!empty($tmdbData['cast'])) { + $actors = implode(', ', $tmdbData['cast']); + } } - // 🔥 Sinon, on GARDE les réalisateurs du CSV (indispensable pour les coffrets - // où TMDB ne trouve que le réalisateur du 1er film de la compilation) - - if (empty($year) && !empty($tmdbData['year'])) $year = $tmdbData['year']; + } // <--- ✅ Fermeture correcte de if ($tmdbApiKey) + // 🔥 L'INSERT SQL DOIT ÊTRE ICI (EN DEHORS DU IF TMDB) $sql = "INSERT INTO videotheque (id, title, year, director, poster, format, length, publisher, ean_isbn13, number_of_discs, aspect_ratio, description, actors) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE director=IF(VALUES(director)!='',VALUES(director),director), poster=IF(VALUES(poster)!='',VALUES(poster),poster), format=IF(VALUES(format)!='',VALUES(format),format), length=IF(VALUES(length)!='',VALUES(length),length), publisher=IF(VALUES(publisher)!='',VALUES(publisher),publisher), ean_isbn13=IF(VALUES(ean_isbn13)!='',VALUES(ean_isbn13),ean_isbn13), number_of_discs=IF(VALUES(number_of_discs)!=1,VALUES(number_of_discs),number_of_discs), aspect_ratio=IF(VALUES(aspect_ratio)!='',VALUES(aspect_ratio),aspect_ratio), description=IF(VALUES(description)!='',VALUES(description),description), actors=IF(VALUES(actors)!='',VALUES(actors),actors)"; $stmt = $pdo->prepare($sql); $stmt->execute([$id, $title, $year, $director, $poster, $format, $length, $publisher, $ean, $discs, $aspect, $description, $actors]);