Reconcile stale running scrapes and allow per-scrape delete
This commit is contained in:
@@ -1336,6 +1336,28 @@
|
||||
`${formatBytes(bytesById.get(scrape.id) ?? 0)} · files ${scrape.downloaded ?? 0} · previews ${scrape.previewed ?? 0}`
|
||||
)
|
||||
);
|
||||
if (scrape.state !== "running" && scrape.state !== "queued") {
|
||||
row.append(
|
||||
button("Delete", async () => {
|
||||
if (
|
||||
!window.confirm(
|
||||
`Delete scrape ${scrape.id}? This removes its database, downloads, and previews.`
|
||||
)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await window.VK.api.post("/api/media/clean", { ids: [scrape.id] });
|
||||
} catch (error) {
|
||||
setStatus(`delete failed: ${error.message}`);
|
||||
}
|
||||
void loadScrapes();
|
||||
void openHistoryModal();
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
if (["paused", "queued"].includes(scrape.state)) {
|
||||
row.append(
|
||||
button("Resume", async () => {
|
||||
|
||||
@@ -190,6 +190,11 @@ export class MediaService {
|
||||
}
|
||||
});
|
||||
|
||||
const stale = this.engine.reconcileStaleJobs();
|
||||
if (stale.length) {
|
||||
this.deps.log?.(`paused ${stale.length} stale scrape(s) left running by a previous daemon`);
|
||||
}
|
||||
|
||||
// Preview passes only run when a walk ends; fill in scrapes that paused early.
|
||||
void this.backfillPreviews();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user