From e28bd8cefb524f5cea9377b138a9c9b4be743ef4 Mon Sep 17 00:00:00 2001 From: Cedric Date: Mon, 22 Jun 2026 08:28:50 +0200 Subject: [PATCH] Actualiser api.php --- api.php | 49 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/api.php b/api.php index 5a47417..d754eba 100644 --- a/api.php +++ b/api.php @@ -315,14 +315,31 @@ switch ($action) { echo json_encode(["success" => true]); break; + case 'get_config_keys': + checkAuth($pdo); + $keys = ['tmdb_api_key', 'ean_search_key', 'barcode_lookup_key']; + $result = []; + foreach ($keys as $k) { + $val = getConfigValue($pdo, $k); + $result[$k] = $val ? '••••••••' : ''; // Masqué pour sécurité + } + echo json_encode($result); + break; + case 'save_config': checkAuth($pdo); - $keyName = $data['key_name'] ?? ''; $keyValue = $data['key_value'] ?? ''; - if ($keyName === 'tmdb_api_key' && !empty($keyValue)) { + $keyName = $data['key_name'] ?? ''; + $keyValue = $data['key_value'] ?? ''; + $allowedKeys = ['tmdb_api_key', 'ean_search_key', 'barcode_lookup_key']; + + if (in_array($keyName, $allowedKeys) && !empty($keyValue)) { $stmt = $pdo->prepare("REPLACE INTO config (key_name, key_value) VALUES (?, ?)"); $stmt->execute([$keyName, encryptData($keyValue)]); echo json_encode(["success" => true]); - } else { http_response_code(400); echo json_encode(["error" => "Données invalides."]); } + } else { + http_response_code(400); + echo json_encode(["error" => "Données invalides."]); + } break; case 'get_films': @@ -407,16 +424,27 @@ switch ($action) { $poster = $rowData['poster'] ?? $rowData['Poster'] ?? $rowData['image'] ?? ''; - // 1. UPCitemdb (par code-barres) - le plus fiable pour DVD/Blu-ray + // ── RECHERCHE D'AFFICHE ADAPTÉE SELON LE TYPE ── + if ($type === 'videotheque') { + // 1. Recherche prioritaire par EAN/UPC (UPCitemDB, EAN-Search, Barcode Lookup) if (empty($poster) && !empty($ean)) { - $upcData = fetchUPCitemdb($ean, $pdo); - if ($upcData && !empty($upcData['poster'])) { - $poster = $upcData['poster']; + $eanPoster = fetchPosterByEAN($ean, $pdo); + if ($eanPoster) { + $poster = $eanPoster; $stats['upc_hits']++; } } - - // 2. MoviePosterDB (par titre) - spécialisé jaquettes physiques + // 2. Fallback MoviePosterDB (par titre) + if (empty($poster)) { + $mpdbData = fetchMoviePosterDB($title, $year, $pdo); + if ($mpdbData && !empty($mpdbData['poster'])) { + $poster = $mpdbData['poster']; + $stats['mpdb_hits']++; + } + } + // ❌ TMDB SUPPRIMÉ POUR LA VIDÉOTHÈQUE (Conformément à la demande) + } else { + // Pour les CRITIQUES, on garde l'ancien comportement (TMDB pour réalisateur/streaming/affiche) if (empty($poster)) { $mpdbData = fetchMoviePosterDB($title, $year, $pdo); if ($mpdbData && !empty($mpdbData['poster'])) { @@ -424,8 +452,6 @@ switch ($action) { $stats['mpdb_hits']++; } } - - // 3. TMDB (fallback) - affiches de films if (empty($poster) && $tmdbApiKey) { $tmdbData = fetchTMDB($title, $year, $tmdbApiKey, $pdo); if ($tmdbData) { @@ -436,6 +462,7 @@ switch ($action) { } } } + } if (empty($poster)) $stats['no_image']++;