diff options
author | metamuffin <metamuffin@disroot.org> | 2025-05-17 18:27:00 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-05-17 18:27:00 +0200 |
commit | 0c4cb405f9b166398a2bf7e128c47fa56dfa2d71 (patch) | |
tree | 06db763a47dcfa9c975f3d797d8ee2534d37b1be /scripts/enqueue.ts | |
parent | 1c27a83409a7f51c5d07098cb6ca65bcee870d9c (diff) | |
download | isda-0c4cb405f9b166398a2bf7e128c47fa56dfa2d71.tar isda-0c4cb405f9b166398a2bf7e128c47fa56dfa2d71.tar.bz2 isda-0c4cb405f9b166398a2bf7e128c47fa56dfa2d71.tar.zst |
enqueue works
Diffstat (limited to 'scripts/enqueue.ts')
-rw-r--r-- | scripts/enqueue.ts | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/enqueue.ts b/scripts/enqueue.ts new file mode 100644 index 0000000..2c2871d --- /dev/null +++ b/scripts/enqueue.ts @@ -0,0 +1,35 @@ + +const file = await Deno.readTextFile(Deno.args[1]) +const note_filter = Deno.args.length >= 3 ? Deno.args[2] : "" + +const ws = new WebSocket(Deno.args[0]) + +function run_enqueue() { + let kind = "http" + for (const line of file.split("\n")) { + if (!line.trim().length) continue + else if (line.startsWith("[") && line.endsWith("]")) + kind = line.substring(1, line.length - 1) + else { + const [name, rest] = line.split("=", 2) + const [id, note] = rest.split(";", 2) + if (note_filter.length && note != note_filter) continue + const key = `${kind}:${id}`; + ws.send(JSON.stringify({ t: "metadata", key, data: { output: name, title: name } })) + ws.send(JSON.stringify({ t: "enqueue", key })) + } + } + ws.send(JSON.stringify({ t: "save" })) + console.log("done"); +} + +ws.onerror = () => console.error("ws error") +ws.onclose = () => console.error("ws closed") +ws.onopen = () => { + console.log("ws open"); + ws.send(JSON.stringify({ t: "register", name: "enqueuer", sources: [] })) + run_enqueue() +} +ws.onmessage = ev => { + console.log(ev.data); +} |