|  | @@ -40,126 +40,128 @@ let ncmAPIUrl = "http://localhost:5999";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  function Submit(req, res) {
 | 
	
		
			
				|  |  | -    let uuid = crypto.randomUUID()
 | 
	
		
			
				|  |  | -    db.connect(function (err) {
 | 
	
		
			
				|  |  | -        if (err) {
 | 
	
		
			
				|  |  | -            console.log(err)
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    })
 | 
	
		
			
				|  |  | -    try {
 | 
	
		
			
				|  |  | -        res.header("Access-Control-Allow-Origin", "*");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    } catch (e) {
 | 
	
		
			
				|  |  | -        console.log(e)
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    let albumCover = null;
 | 
	
		
			
				|  |  | -    try {
 | 
	
		
			
				|  |  | -        fetch(req.body.file).then(res => {
 | 
	
		
			
				|  |  | -            res.arrayBuffer().then(r => fs.writeFileSync("./" + uuid, Buffer.from(r)));
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        fetch(req.body.albumCover).then(res => {
 | 
	
		
			
				|  |  | -            res.arrayBuffer().then(r => {
 | 
	
		
			
				|  |  | -                albumCover = r
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +    if (req.body.file !== undefined) {
 | 
	
		
			
				|  |  | +        let uuid = crypto.randomUUID()
 | 
	
		
			
				|  |  | +        db.connect(function (err) {
 | 
	
		
			
				|  |  | +            if (err) {
 | 
	
		
			
				|  |  | +                console.log(err)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            res.end("api_success")
 | 
	
		
			
				|  |  | +            res.header("Access-Control-Allow-Origin", "*");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          } catch (e) {
 | 
	
		
			
				|  |  |              console.log(e)
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    } catch (err) {
 | 
	
		
			
				|  |  | +        let albumCover = null;
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            res.status(500).send("Server Error");
 | 
	
		
			
				|  |  | +            fetch(req.body.file).then(res => {
 | 
	
		
			
				|  |  | +                res.arrayBuffer().then(r => fs.writeFileSync("./" + uuid, Buffer.from(r)));
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            fetch(req.body.albumCover).then(res => {
 | 
	
		
			
				|  |  | +                res.arrayBuffer().then(r => {
 | 
	
		
			
				|  |  | +                    albumCover = r
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        } catch (e) {
 | 
	
		
			
				|  |  | -            console.log(e)
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        return
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +            try {
 | 
	
		
			
				|  |  | +                res.end("api_success")
 | 
	
		
			
				|  |  | +            } catch (e) {
 | 
	
		
			
				|  |  | +                console.log(e)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    const callback = function (d) {
 | 
	
		
			
				|  |  | -        console.log(d.toString());
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    const errcb = function (d) {
 | 
	
		
			
				|  |  | -        console.log(d.toString());
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    let kind_of = [];
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    switch (req.body.kind) {
 | 
	
		
			
				|  |  | -        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[1] = `./output/${uuid}_(Instrumental)_UVR-MDX-NET-Inst_HQ_5.mp3`
 | 
	
		
			
				|  |  | -            kind_of[2] = `${uuid}_(Instrumental)_UVR-MDX-NET-Inst_HQ_5.mp3`
 | 
	
		
			
				|  |  | -            kind_of[3] = `./output/${uuid}_(Vocals)_UVR-MDX-NET-Inst_HQ_5.mp3`
 | 
	
		
			
				|  |  | -            break;
 | 
	
		
			
				|  |  | -        case 1:
 | 
	
		
			
				|  |  | -            kind_of[0] = `audio-separator ./${uuid} --model_filename UVR_MDXNET_KARA.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_MDXNET_KARA.mp3`
 | 
	
		
			
				|  |  | -            kind_of[2] = `${uuid}_(Instrumental)_UVR_MDXNET_KARA.mp3`
 | 
	
		
			
				|  |  | -            kind_of[3] = `./output/${uuid}_(Vocals)_UVR_MDXNET_KARA.mp3`
 | 
	
		
			
				|  |  | -            break;
 | 
	
		
			
				|  |  | -        case 3:
 | 
	
		
			
				|  |  | -            kind_of[0] = `audio-separator ./${uuid} --model_filename kuielab_a_bass.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}_(Bass)_kuielab_a_bass.mp3`
 | 
	
		
			
				|  |  | -            kind_of[2] = `${uuid}_(Bass)_kuielab_a_bass.mp3`
 | 
	
		
			
				|  |  | -            kind_of[3] = `./output/${uuid}_(No Bass)_kuielab_a_bass.mp3`
 | 
	
		
			
				|  |  | -            break;
 | 
	
		
			
				|  |  | -        case 4:
 | 
	
		
			
				|  |  | -            kind_of[0] = `audio-separator ./${uuid} --model_filename kuielab_a_drums.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}_(Drums)_kuielab_a_drums.mp3`
 | 
	
		
			
				|  |  | -            kind_of[2] = `${uuid}_(Drums)_kuielab_a_drums.mp3`
 | 
	
		
			
				|  |  | -            kind_of[3] = `./output/${uuid}_(No Drums)_kuielab_a_drums.mp3`
 | 
	
		
			
				|  |  | -            break;
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  | +            try {
 | 
	
		
			
				|  |  | +                res.status(500).send("Server Error");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            } catch (e) {
 | 
	
		
			
				|  |  | +                console.log(e)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    nrc.run([kind_of[0]], {
 | 
	
		
			
				|  |  | -        onData: callback, onError: errcb
 | 
	
		
			
				|  |  | -    }).then(() => {
 | 
	
		
			
				|  |  | +        const callback = function (d) {
 | 
	
		
			
				|  |  | +            console.log(d.toString());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        const errcb = function (d) {
 | 
	
		
			
				|  |  | +            console.log(d.toString());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        let kind_of = [];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        switch (req.body.kind) {
 | 
	
		
			
				|  |  | +            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[1] = `./output/${uuid}_(Instrumental)_UVR-MDX-NET-Inst_HQ_5.mp3`
 | 
	
		
			
				|  |  | +                kind_of[2] = `${uuid}_(Instrumental)_UVR-MDX-NET-Inst_HQ_5.mp3`
 | 
	
		
			
				|  |  | +                kind_of[3] = `./output/${uuid}_(Vocals)_UVR-MDX-NET-Inst_HQ_5.mp3`
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +            case 1:
 | 
	
		
			
				|  |  | +                kind_of[0] = `audio-separator ./${uuid} --model_filename UVR_MDXNET_KARA.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_MDXNET_KARA.mp3`
 | 
	
		
			
				|  |  | +                kind_of[2] = `${uuid}_(Instrumental)_UVR_MDXNET_KARA.mp3`
 | 
	
		
			
				|  |  | +                kind_of[3] = `./output/${uuid}_(Vocals)_UVR_MDXNET_KARA.mp3`
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +            case 3:
 | 
	
		
			
				|  |  | +                kind_of[0] = `audio-separator ./${uuid} --model_filename kuielab_a_bass.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}_(Bass)_kuielab_a_bass.mp3`
 | 
	
		
			
				|  |  | +                kind_of[2] = `${uuid}_(Bass)_kuielab_a_bass.mp3`
 | 
	
		
			
				|  |  | +                kind_of[3] = `./output/${uuid}_(No Bass)_kuielab_a_bass.mp3`
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +            case 4:
 | 
	
		
			
				|  |  | +                kind_of[0] = `audio-separator ./${uuid} --model_filename kuielab_a_drums.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}_(Drums)_kuielab_a_drums.mp3`
 | 
	
		
			
				|  |  | +                kind_of[2] = `${uuid}_(Drums)_kuielab_a_drums.mp3`
 | 
	
		
			
				|  |  | +                kind_of[3] = `./output/${uuid}_(No Drums)_kuielab_a_drums.mp3`
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        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(() => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        fs.rm(kind_of[1], (err) => {
 | 
	
		
			
				|  |  | -            if (err) {
 | 
	
		
			
				|  |  | -                console.log(err);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        nrc.run([kind_of[0]], {
 | 
	
		
			
				|  |  | +            onData: callback, onError: errcb
 | 
	
		
			
				|  |  | +        }).then(() => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        fs.rm(kind_of[3], (err) => {
 | 
	
		
			
				|  |  | -            if (err) {
 | 
	
		
			
				|  |  | -                console.log(err);
 | 
	
		
			
				|  |  | +            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(() => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        fs.rm(uuid, (err) => {
 | 
	
		
			
				|  |  | -            if (err) {
 | 
	
		
			
				|  |  | -                console.log(err);
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            fs.rm(kind_of[1], (err) => {
 | 
	
		
			
				|  |  | +                if (err) {
 | 
	
		
			
				|  |  | +                    console.log(err);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            fs.rm(kind_of[3], (err) => {
 | 
	
		
			
				|  |  | +                if (err) {
 | 
	
		
			
				|  |  | +                    console.log(err);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            fs.rm(uuid, (err) => {
 | 
	
		
			
				|  |  | +                if (err) {
 | 
	
		
			
				|  |  | +                    console.log(err);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        if (req.body.email !== undefined) {
 | 
	
		
			
				|  |  | -            console.log(req.body.email)
 | 
	
		
			
				|  |  | -            transporter.sendMail({
 | 
	
		
			
				|  |  | -                from: '"xiey0" <xiey0@qq.com>',
 | 
	
		
			
				|  |  | -                to: req.body.email,
 | 
	
		
			
				|  |  | -                subject: "你的音频已处理完成。",
 | 
	
		
			
				|  |  | -                text: "你的音频已处理完成。",
 | 
	
		
			
				|  |  | -                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) => {
 | 
	
		
			
				|  |  | -                console.log("Message sent: %s", result.messageId)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              })
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +            if (req.body.email !== undefined) {
 | 
	
		
			
				|  |  | +                console.log(req.body.email)
 | 
	
		
			
				|  |  | +                transporter.sendMail({
 | 
	
		
			
				|  |  | +                    from: '"xiey0" <xiey0@qq.com>',
 | 
	
		
			
				|  |  | +                    to: req.body.email,
 | 
	
		
			
				|  |  | +                    subject: "你的音频已处理完成。",
 | 
	
		
			
				|  |  | +                    text: "你的音频已处理完成。",
 | 
	
		
			
				|  |  | +                    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) => {
 | 
	
		
			
				|  |  | +                    console.log("Message sent: %s", result.messageId)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }
 |