Actualiser js/admin.js
This commit is contained in:
+9
-9
@@ -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); }
|
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) {
|
async function handleCsvUpload(input) {
|
||||||
if (!input.files || input.files.length === 0) return;
|
if (!input.files || input.files.length === 0) return;
|
||||||
const file = input.files[0];
|
const file = input.files[0];
|
||||||
@@ -182,17 +182,17 @@ async function handleCsvUpload(input) {
|
|||||||
const text = await file.text();
|
const text = await file.text();
|
||||||
const allData = parseCSV(text);
|
const allData = parseCSV(text);
|
||||||
if (allData.length === 0) {
|
if (allData.length === 0) {
|
||||||
alert(' Le fichier CSV est vide ou mal formaté.');
|
alert('❌ Le fichier CSV est vide ou mal formaté.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
closeConfigModal();
|
closeConfigModal();
|
||||||
showProgressModal(allData.length);
|
showProgressModal(allData.length);
|
||||||
|
|
||||||
// 🚀 Lots de 15 au lieu de 5 (3× moins de requêtes HTTP)
|
const batchSize = 3; // Réduit pour permettre la récupération d'images
|
||||||
const batchSize = 15;
|
|
||||||
let processed = 0;
|
let processed = 0;
|
||||||
let totalTmdbCalls = 0;
|
|
||||||
let totalEanHits = 0;
|
let totalEanHits = 0;
|
||||||
|
let totalTmdbHits = 0;
|
||||||
|
let totalNoImage = 0;
|
||||||
const startTime = Date.now();
|
const startTime = Date.now();
|
||||||
|
|
||||||
for (let i = 0; i < allData.length; i += batchSize) {
|
for (let i = 0; i < allData.length; i += batchSize) {
|
||||||
@@ -208,8 +208,9 @@ async function handleCsvUpload(input) {
|
|||||||
});
|
});
|
||||||
const result = await res.json();
|
const result = await res.json();
|
||||||
if (result.stats) {
|
if (result.stats) {
|
||||||
totalTmdbCalls += (result.stats.tmdb_calls || 0);
|
|
||||||
totalEanHits += (result.stats.ean_hits || 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); }
|
} 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 elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
|
||||||
const speed = (processed / (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);
|
const pct = Math.round((processed / allData.length) * 100);
|
||||||
document.getElementById('progress-bar').style.width = pct + '%';
|
document.getElementById('progress-bar').style.width = pct + '%';
|
||||||
document.getElementById('progress-text').textContent =
|
document.getElementById('progress-text').textContent =
|
||||||
`Import en cours... (${speed} films/s)`;
|
`Import en cours... (${speed} films/s)`;
|
||||||
document.getElementById('progress-count').textContent =
|
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();
|
closeProgressModal();
|
||||||
const totalTime = ((Date.now() - startTime) / 1000).toFixed(1);
|
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();
|
loadDashboardData();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
closeProgressModal();
|
closeProgressModal();
|
||||||
|
|||||||
Reference in New Issue
Block a user