From f7eb287d5b5fdb65895eabaaae3fbaa0a016bd2e Mon Sep 17 00:00:00 2001 From: DavidVentura Date: Wed, 31 Jan 2024 16:21:03 +0100 Subject: [PATCH] add a trivial home page to link multiple cameras --- http_server.ts | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/http_server.ts b/http_server.ts index 0c9bde4..8eca47a 100644 --- a/http_server.ts +++ b/http_server.ts @@ -12,22 +12,29 @@ let responses = []; let sessions: Record = {}; const server = http.createServer((req, res) => { - let devId = req.url.slice(1); - console.log("requested for", devId); - let s = sessions[devId]; + if (req.url.startsWith("/camera/")) { + let devId = req.url.split("/")[2]; + console.log("requested for", devId); + let s = sessions[devId]; - if (s === undefined) { - res.writeHead(400); - res.end("invalid ID"); - return; + if (s === undefined) { + res.writeHead(400); + res.end("invalid ID"); + return; + } + if (!s.connected) { + res.writeHead(400); + res.end("Nothing online"); + return; + } + res.setHeader("Content-Type", `multipart/x-mixed-replace; boundary="${BOUNDARY}"`); + responses.push(res); + } else { + res.write(``); + Object.keys(sessions).forEach((id) => res.write(`${id}`)); + res.write(``); + res.end(); } - if (!s.connected) { - res.writeHead(400); - res.end("Nothing online"); - return; - } - res.setHeader("Content-Type", `multipart/x-mixed-replace; boundary="${BOUNDARY}"`); - responses.push(res); }); let devEv = discoverDevices(opts);