This commit is contained in:
2026-01-16 13:45:15 +00:00
parent 8a3dad4a5f
commit ab4ceb877b
2 changed files with 63 additions and 8 deletions

View File

@@ -1,15 +1,38 @@
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {
// this one requires auth // this one requires auth
//const login = fetch("http://127.0.0.1:81/login");
console.log(await readBody(event))
const config = await useRuntimeConfig(event)
const body = await readBody(event)
const session = await getUserSession(event) const session = await getUserSession(event)
console.log(session) //console.log(session)
try {
const userId = session.secure!.user_id; const userId = session.secure?.user_id;
} if (userId == undefined || userId == null)
catch {
throw createError({ status: 401 }) throw createError({ status: 401 })
} else if (body.song == undefined)
throw createError({ status: 400, message: "Song name required"})
const req = await fetch(config.fastapi_url + "/convert", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
video_url : body.url,
user_id : userId,
artist : body.artist || null,
album : body.album || null,
song : body.song
})
})
setResponseStatus(event, req.status)
setResponseHeader(event, "Content-Type", "application/json")
//console.log(await req.json())
return await req.json()
}) })

View File

@@ -0,0 +1,32 @@
import { createReadStream, existsSync, unlink, unlinkSync } from "node:fs"
import { } from "fs/promises"
import { join } from "path"
export default defineEventHandler(async (event) => {
const session = await getUserSession(event)
//const query = await getQuery(event)
// @ts-ignore
const userId = session.secure?.user_id;
if (userId == undefined || userId == null)
throw createError({ status: 401 })
const file = await getRouterParam(event, 'file');
if (file == undefined)
throw createError({ status: 400, message: "No file"})
const def_filepath = "/home/suricatingss/Projects/WebStorm/yt2mp3/server/fastapi_server/downloads";
const filepath = join(def_filepath, userId.toString(), file.toString())
console.log(filepath)
if (!existsSync(filepath))
throw createError({ status: 404, message: "Not found"})
setHeader(event, 'Content-Disposition', `attachment; filename="${file}"`)
const file_stream = createReadStream(filepath)
file_stream.on("close", () => unlink(filepath, (err) => { if (err) console.warn(err.message) }))
return file_stream;
})