From 0c4cb405f9b166398a2bf7e128c47fa56dfa2d71 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 17 May 2025 18:27:00 +0200 Subject: enqueue works --- scripts/enqueue.ts | 35 +++++++++++++++++++++++++++++++++++ scripts/ytdlp_flatten.ts | 2 ++ 2 files changed, 37 insertions(+) create mode 100644 scripts/enqueue.ts (limited to 'scripts') 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); +} diff --git a/scripts/ytdlp_flatten.ts b/scripts/ytdlp_flatten.ts index f2eaa65..6a3eb5e 100644 --- a/scripts/ytdlp_flatten.ts +++ b/scripts/ytdlp_flatten.ts @@ -5,7 +5,9 @@ const ws = new WebSocket(Deno.args[0]) 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: "yt-dlp playlist flattener", sources: ["ytdlp-flatten"] })) + ws.send(JSON.stringify({ t: "accept" })) } ws.onmessage = ev => { console.log(ev.data); -- cgit v1.2.3-70-g09d2