Feature: auto-fill game covers from internet sources
This commit is contained in:
36
app.js
36
app.js
@@ -51,6 +51,7 @@ const totalGamesValue = document.getElementById("totalGamesValue");
|
||||
const migrateBtn = document.getElementById("migrateBtn");
|
||||
const backupControls = document.getElementById("backupControls");
|
||||
const backupBtn = document.getElementById("backupBtn");
|
||||
const autoCoverBtn = document.getElementById("autoCoverBtn");
|
||||
const restoreMergeBtn = document.getElementById("restoreMergeBtn");
|
||||
const restoreReplaceBtn = document.getElementById("restoreReplaceBtn");
|
||||
const restoreFileInput = document.getElementById("restoreFileInput");
|
||||
@@ -545,6 +546,41 @@ backupBtn.addEventListener("click", async () => {
|
||||
}
|
||||
});
|
||||
|
||||
autoCoverBtn.addEventListener("click", async () => {
|
||||
if (!apiReachable) {
|
||||
alert("API indisponible. Enrichissement des pochettes impossible.");
|
||||
return;
|
||||
}
|
||||
|
||||
const confirmed = window.confirm(
|
||||
"Lancer la recuperation automatique des pochettes depuis internet pour les jeux sans image ?",
|
||||
);
|
||||
if (!confirmed) {
|
||||
return;
|
||||
}
|
||||
|
||||
autoCoverBtn.disabled = true;
|
||||
const originalLabel = autoCoverBtn.textContent;
|
||||
autoCoverBtn.textContent = "Traitement en cours...";
|
||||
try {
|
||||
const result = await apiRequest("/api/covers/autofill", {
|
||||
method: "POST",
|
||||
body: { limit: 350, overwrite: false },
|
||||
timeoutMs: 180000,
|
||||
});
|
||||
await refreshFromApi(state.selectedBrand, state.selectedConsole);
|
||||
alert(
|
||||
`Pochettes maj: ${result.updated || 0} / ${result.scanned || 0} jeu(x). Non trouves: ${result.notFound || 0}.`,
|
||||
);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
alert(`Echec auto-pochettes: ${error.message}`);
|
||||
} finally {
|
||||
autoCoverBtn.disabled = false;
|
||||
autoCoverBtn.textContent = originalLabel;
|
||||
}
|
||||
});
|
||||
|
||||
restoreMergeBtn.addEventListener("click", () => {
|
||||
pendingRestoreMode = "merge";
|
||||
restoreFileInput.click();
|
||||
|
||||
Reference in New Issue
Block a user