diff options
Diffstat (limited to 'scripts/enqueue.ts')
-rw-r--r-- | scripts/enqueue.ts | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/scripts/enqueue.ts b/scripts/enqueue.ts index be67be7..d2b4729 100644 --- a/scripts/enqueue.ts +++ b/scripts/enqueue.ts @@ -4,6 +4,18 @@ const ws = new WebSocket(Deno.args[0]) let config: Config = {} as unknown as Config async function run_enqueue(eqt: EnqueueTask) { + if (eqt.retry_failed) { + ws.send(JSON.stringify({ + t: "query", + state: "complete", + kind: eqt.kind, + data: eqt.filter ? { failed: eqt.filter } : null, + cookie: "for_enqueue" + })) + return + } + + if (!eqt.list_file) throw new Error("need either list_file or retry_failed"); const file = await Deno.readTextFile(eqt.list_file) for (const line of file.split("\n")) { if (!line.trim().length) continue @@ -58,4 +70,11 @@ ws.onmessage = ev => { if (!started) start() } if (p.t == "error") console.error(`error: ${p.message}`); + if (p.t == "query_response" && p.cookie == "for_enqueue") { + for (const key of p.keys) { + ws.send(JSON.stringify({ t: "metadata", key, data: { failed: null } })) + ws.send(JSON.stringify({ t: "enqueue", key, ignore_complete: true })) + } + ws.send(JSON.stringify({ t: "save" })) + } } |