|
@@ -45,14 +45,10 @@ const transporter = nodemailer.createTransport({
|
|
/// TODO
|
|
/// TODO
|
|
let ncmAPIUrl = "http://localhost:5999";
|
|
let ncmAPIUrl = "http://localhost:5999";
|
|
|
|
|
|
-let res_o = null;
|
|
|
|
-let req_o = null;
|
|
|
|
-let currentTask = [];
|
|
|
|
|
|
|
|
-function Submit() {
|
|
|
|
|
|
+let currentTask = [];
|
|
|
|
|
|
- let reqLocal = req_o;
|
|
|
|
- let resLocal = res_o;
|
|
|
|
|
|
+function Submit(req, res) {
|
|
|
|
|
|
let uuid = crypto.randomUUID()
|
|
let uuid = crypto.randomUUID()
|
|
db.connect(function (err) {
|
|
db.connect(function (err) {
|
|
@@ -64,10 +60,10 @@ function Submit() {
|
|
|
|
|
|
let albumCover = null;
|
|
let albumCover = null;
|
|
try {
|
|
try {
|
|
- fetch(reqLocal.body.file).then(res => {
|
|
|
|
|
|
+ fetch(req.body.file).then(res => {
|
|
res.arrayBuffer().then(r => fs.writeFileSync("./" + uuid, Buffer.from(r)));
|
|
res.arrayBuffer().then(r => fs.writeFileSync("./" + uuid, Buffer.from(r)));
|
|
})
|
|
})
|
|
- fetch(reqLocal.body.albumCover).then(res => {
|
|
|
|
|
|
+ fetch(req.body.albumCover).then(res => {
|
|
res.arrayBuffer().then(r => {
|
|
res.arrayBuffer().then(r => {
|
|
albumCover = r
|
|
albumCover = r
|
|
})
|
|
})
|
|
@@ -89,7 +85,7 @@ function Submit() {
|
|
}
|
|
}
|
|
let kind_of = [];
|
|
let kind_of = [];
|
|
|
|
|
|
- switch (reqLocal.body.kind) {
|
|
|
|
|
|
+ switch (req.body.kind) {
|
|
case 0:
|
|
case 0:
|
|
kind_of[0] = `audio-separator ./${uuid} --model_filename UVR-MDX-NET-Inst_HQ_5.onnx --mdx_enable_denoise --mdx_segment_size 4000 --mdx_overlap 0.75 --output_format mp3 --mdx_batch_size 300 --output_dir output`
|
|
kind_of[0] = `audio-separator ./${uuid} --model_filename UVR-MDX-NET-Inst_HQ_5.onnx --mdx_enable_denoise --mdx_segment_size 4000 --mdx_overlap 0.75 --output_format mp3 --mdx_batch_size 300 --output_dir output`
|
|
kind_of[1] = `./output/${uuid}_(Instrumental)_UVR-MDX-NET-Inst_HQ_5.mp3`
|
|
kind_of[1] = `./output/${uuid}_(Instrumental)_UVR-MDX-NET-Inst_HQ_5.mp3`
|
|
@@ -121,7 +117,7 @@ function Submit() {
|
|
onData: callback, onError: errcb
|
|
onData: callback, onError: errcb
|
|
}).then(() => {
|
|
}).then(() => {
|
|
|
|
|
|
- db.execute(("INSERT INTO instrunet_entry (uuid, song_name, album_name, link_to, databinary, artist,kind, albumcover) VALUES (?,?,?,?,?,?,?,?)"), [uuid, reqLocal.body.name, reqLocal.body.albumName, reqLocal.body.link, fs.readFileSync(kind_of[1]), reqLocal.body.artist, reqLocal.body.kind, albumCover])
|
|
|
|
|
|
+ db.execute(("INSERT INTO instrunet_entry (uuid, song_name, album_name, link_to, databinary, artist,kind, albumcover) VALUES (?,?,?,?,?,?,?,?)"), [uuid, req.body.name, req.body.albumName, req.body.link, fs.readFileSync(kind_of[1]), req.body.artist, req.body.kind, albumCover])
|
|
db.unprepare(() => {
|
|
db.unprepare(() => {
|
|
|
|
|
|
})
|
|
})
|
|
@@ -145,14 +141,14 @@ function Submit() {
|
|
|
|
|
|
|
|
|
|
})
|
|
})
|
|
- if (reqLocal.body.email !== undefined) {
|
|
|
|
- console.log(reqLocal.body.email)
|
|
|
|
|
|
+ if (req.body.email !== undefined) {
|
|
|
|
+ console.log(req.body.email)
|
|
transporter.sendMail({
|
|
transporter.sendMail({
|
|
from: '"xiey0" <xiey0@qq.com>',
|
|
from: '"xiey0" <xiey0@qq.com>',
|
|
- to: reqLocal.body.email,
|
|
|
|
|
|
+ to: req.body.email,
|
|
subject: "你的音频已处理完成。",
|
|
subject: "你的音频已处理完成。",
|
|
text: "你的音频已处理完成。",
|
|
text: "你的音频已处理完成。",
|
|
- html: fs.readFileSync("./Template.html", "utf8").toString().replace("{song_name}", reqLocal.body.name).replace("{href_link}", "https://andyxie.cn:4000/player?play=" + uuid)
|
|
|
|
|
|
+ html: fs.readFileSync("./Template.html", "utf8").toString().replace("{song_name}", req.body.name).replace("{href_link}", "https://andyxie.cn:4000/player?play=" + uuid)
|
|
}).then((result) => {
|
|
}).then((result) => {
|
|
console.log("Message sent: %s", result.messageId)
|
|
console.log("Message sent: %s", result.messageId)
|
|
|
|
|
|
@@ -185,26 +181,26 @@ function SubmitWrapper(req, res) {
|
|
|
|
|
|
if (result.length === 0) {
|
|
if (result.length === 0) {
|
|
let repeat = false;
|
|
let repeat = false;
|
|
- currentTask.forEach((item) => {
|
|
|
|
|
|
+ for (const item of currentTask) {
|
|
if (req.body.name === item.name) {
|
|
if (req.body.name === item.name) {
|
|
if (req.body.albumName === item.albumName) {
|
|
if (req.body.albumName === item.albumName) {
|
|
if (req.body.kind === item.kind) {
|
|
if (req.body.kind === item.kind) {
|
|
- repeat = true;
|
|
|
|
|
|
+
|
|
res.header("Access-Control-Allow-Origin", "*");
|
|
res.header("Access-Control-Allow-Origin", "*");
|
|
res.statusCode = 500
|
|
res.statusCode = 500
|
|
res.end("傻逼,重复了。请在盲目上传之前看看库里有没有好么傻逼?")
|
|
res.end("傻逼,重复了。请在盲目上传之前看看库里有没有好么傻逼?")
|
|
|
|
+ return
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- })
|
|
|
|
- if (repeat) {
|
|
|
|
- return
|
|
|
|
}
|
|
}
|
|
- req_o = req;
|
|
|
|
- res_o = res;
|
|
|
|
|
|
+
|
|
|
|
+
|
|
if (req.body.file !== undefined) {
|
|
if (req.body.file !== undefined) {
|
|
- queue.add(Submit)
|
|
|
|
|
|
+ queue.add(() => {
|
|
|
|
+ Submit(req, res)
|
|
|
|
+ })
|
|
currentTask.push({
|
|
currentTask.push({
|
|
name: req.body.name, albumName: req.body.albumName, kind: req.body.kind, artist: req.body.artist,
|
|
name: req.body.name, albumName: req.body.albumName, kind: req.body.kind, artist: req.body.artist,
|
|
})
|
|
})
|
|
@@ -333,8 +329,8 @@ app.options('/ncm/url', function (req, res) {
|
|
res.end()
|
|
res.end()
|
|
})
|
|
})
|
|
app.post("/ncm/url", function (req, res) {
|
|
app.post("/ncm/url", function (req, res) {
|
|
- if (req.body.id!==undefined && req.body.kind!==undefined) {
|
|
|
|
- try{
|
|
|
|
|
|
+ if (req.body.id !== undefined && req.body.kind !== undefined) {
|
|
|
|
+ try {
|
|
let id = req.body.id
|
|
let id = req.body.id
|
|
fetch(ncmAPIUrl + "/song/download/url/v1?id=" + id + "&level=hires", {
|
|
fetch(ncmAPIUrl + "/song/download/url/v1?id=" + id + "&level=hires", {
|
|
headers: {
|
|
headers: {
|
|
@@ -351,7 +347,7 @@ app.post("/ncm/url", function (req, res) {
|
|
req.body.link = result_json.data.url
|
|
req.body.link = result_json.data.url
|
|
req.body.artist = infos.songs[0].ar[0].name
|
|
req.body.artist = infos.songs[0].ar[0].name
|
|
/// Complete
|
|
/// Complete
|
|
-
|
|
|
|
|
|
+
|
|
|
|
|
|
SubmitWrapper(req, res)
|
|
SubmitWrapper(req, res)
|
|
|
|
|
|
@@ -362,7 +358,7 @@ app.post("/ncm/url", function (req, res) {
|
|
}
|
|
}
|
|
|
|
|
|
})
|
|
})
|
|
- }catch(err) {
|
|
|
|
|
|
+ } catch (err) {
|
|
res.status(500).header("Access-Control-Allow-Origin", "*");
|
|
res.status(500).header("Access-Control-Allow-Origin", "*");
|
|
console.log(err)
|
|
console.log(err)
|
|
}
|
|
}
|