From cd6c9a898cac0d575491b546197d3af4f5977de0 Mon Sep 17 00:00:00 2001 From: sky Date: Wed, 9 Jul 2025 01:28:02 -0400 Subject: [PATCH] first commit --- .env.example | 1 + .gitignore | 3 +++ bun.lock | 14 ++++++++++++++ index.js | 30 ++++++++++++++++++++++++++++++ package.json | 14 ++++++++++++++ 5 files changed, 62 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 bun.lock create mode 100644 index.js create mode 100644 package.json diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..7b369e0 --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +PRIVATE_KEY= \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c7b916f --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.env +node_modules/ +tmp/ \ No newline at end of file diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..aba93a2 --- /dev/null +++ b/bun.lock @@ -0,0 +1,14 @@ +{ + "lockfileVersion": 1, + "workspaces": { + "": { + "name": "processing", + "dependencies": { + "dotenv": "^17.1.0", + }, + }, + }, + "packages": { + "dotenv": ["dotenv@17.1.0", "", {}, "sha512-tG9VUTJTuju6GcXgbdsOuRhupE8cb4mRgY5JLRCh4MtGoVo3/gfGUtOMwmProM6d0ba2mCFvv+WrpYJV6qgJXQ=="], + } +} diff --git a/index.js b/index.js new file mode 100644 index 0000000..1a09407 --- /dev/null +++ b/index.js @@ -0,0 +1,30 @@ +import { $ } from "bun"; +import 'dotenv/config' +Bun.serve({ + port: 6001, + routes: { + "/status": new Response("OK"), + "/process": { + POST: async req => { + if(req.headers.get("X-Authentication") == process.env.PRIVATE_KEY) { + let path = "tmp/" + Bun.randomUUIDv7(); + await Bun.write(path + ".mp4", await req.body.blob()); + await $`ffmpeg -i ${path}.mp4 -map_metadata -1 -map 0 -map -0:v -b:a 64k ${path}.ogg` + await (Bun.file(path + ".mp4")).delete(); + console.log("deleted req file"); + let response = new Response(await Bun.file(path + ".ogg").bytes(), { + headers: { + "Content-Type": "application/ogg", + }, + }); + await (Bun.file(path + ".ogg")).delete(); + return response; + } else { + return new Response("Not Authenticated", { status: 401 }); + } + } + } + + } +}); +console.log("http://localhost:6001") \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..6b2733e --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "name": "processing", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "start": "bun --watch index.js" + }, + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "dotenv": "^17.1.0" + } +}