From 3c03275ec93a9d81cf6edcc785173e6551ab2202 Mon Sep 17 00:00:00 2001 From: Cedric Date: Sun, 21 Jun 2026 15:39:04 +0200 Subject: [PATCH] Actualiser js/admin.js --- js/admin.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/js/admin.js b/js/admin.js index 5097b06..0609fad 100644 --- a/js/admin.js +++ b/js/admin.js @@ -172,7 +172,7 @@ async function saveFilmForm(e) { try { await fetch(`${API_URL}?action=save_film`, { method: 'POST', headers: { 'Authorization': localStorage.getItem('token'), 'Content-Type': 'application/json' }, body: JSON.stringify(payload) }); closeAdminModal(); loadDashboardData(); } catch (err) { console.error('Erreur sauvegarde :', err); } } -// ── IMPORT CSV OPTIMISÉ (lots de 15 + stats) ── +// ── IMPORT CSV AVEC RÉCUPÉRATION JAQUETTES ── async function handleCsvUpload(input) { if (!input.files || input.files.length === 0) return; const file = input.files[0]; @@ -182,17 +182,17 @@ async function handleCsvUpload(input) { const text = await file.text(); const allData = parseCSV(text); if (allData.length === 0) { - alert(' Le fichier CSV est vide ou mal formaté.'); + alert('❌ Le fichier CSV est vide ou mal formaté.'); return; } closeConfigModal(); showProgressModal(allData.length); - // 🚀 Lots de 15 au lieu de 5 (3× moins de requêtes HTTP) - const batchSize = 15; + const batchSize = 3; // Réduit pour permettre la récupération d'images let processed = 0; - let totalTmdbCalls = 0; let totalEanHits = 0; + let totalTmdbHits = 0; + let totalNoImage = 0; const startTime = Date.now(); for (let i = 0; i < allData.length; i += batchSize) { @@ -208,8 +208,9 @@ async function handleCsvUpload(input) { }); const result = await res.json(); if (result.stats) { - totalTmdbCalls += (result.stats.tmdb_calls || 0); totalEanHits += (result.stats.ean_hits || 0); + totalTmdbHits += (result.stats.tmdb_hits || 0); + totalNoImage += (result.stats.no_image || 0); } } catch (err) { console.error('Erreur sur un lot:', err); } @@ -217,18 +218,17 @@ async function handleCsvUpload(input) { const elapsed = ((Date.now() - startTime) / 1000).toFixed(1); const speed = (processed / (Date.now() - startTime) * 1000).toFixed(1); - // Affichage enrichi : progression + vitesse + stats const pct = Math.round((processed / allData.length) * 100); document.getElementById('progress-bar').style.width = pct + '%'; document.getElementById('progress-text').textContent = `Import en cours... (${speed} films/s)`; document.getElementById('progress-count').textContent = - `${processed} / ${allData.length} | 🖼️ ${totalEanHits} jaquettes | 🎬 ${totalTmdbCalls} appels TMDB | ⏱️ ${elapsed}s`; + `${processed} / ${allData.length} | ️ ${totalEanHits} jaquettes | 🎬 ${totalTmdbHits} TMDB | ⏱️ ${elapsed}s`; } closeProgressModal(); const totalTime = ((Date.now() - startTime) / 1000).toFixed(1); - alert(`✅ Import terminé en ${totalTime}s !\n📦 ${allData.length} film(s)\n🖼️ ${totalEanHits} jaquette(s) récupérée(s)\n ${totalTmdbCalls} appel(s) TMDB`); + alert(`✅ Import terminé en ${totalTime}s !\n📦 ${allData.length} film(s)\n🖼️ ${totalEanHits} jaquette(s) via EAN\n🎬 ${totalTmdbHits} affiche(s) via TMDB\n❌ ${totalNoImage} sans image`); loadDashboardData(); } catch (err) { closeProgressModal();