|  | @@ -45,14 +45,10 @@ const transporter = nodemailer.createTransport({
 | 
	
		
			
				|  |  |  /// TODO
 | 
	
		
			
				|  |  |  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()
 | 
	
		
			
				|  |  |      db.connect(function (err) {
 | 
	
	
		
			
				|  | @@ -64,10 +60,10 @@ function Submit() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      let albumCover = null;
 | 
	
		
			
				|  |  |      try {
 | 
	
		
			
				|  |  | -        fetch(reqLocal.body.file).then(res => {
 | 
	
		
			
				|  |  | +        fetch(req.body.file).then(res => {
 | 
	
		
			
				|  |  |              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 => {
 | 
	
		
			
				|  |  |                  albumCover = r
 | 
	
		
			
				|  |  |              })
 | 
	
	
		
			
				|  | @@ -89,7 +85,7 @@ function Submit() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      let kind_of = [];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    switch (reqLocal.body.kind) {
 | 
	
		
			
				|  |  | +    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`
 | 
	
	
		
			
				|  | @@ -121,7 +117,7 @@ function Submit() {
 | 
	
		
			
				|  |  |          onData: callback, onError: errcb
 | 
	
		
			
				|  |  |      }).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(() => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          })
 | 
	
	
		
			
				|  | @@ -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({
 | 
	
		
			
				|  |  |                  from: '"xiey0" <xiey0@qq.com>',
 | 
	
		
			
				|  |  | -                to: reqLocal.body.email,
 | 
	
		
			
				|  |  | +                to: req.body.email,
 | 
	
		
			
				|  |  |                  subject: "你的音频已处理完成。",
 | 
	
		
			
				|  |  |                  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) => {
 | 
	
		
			
				|  |  |                  console.log("Message sent: %s", result.messageId)
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -185,26 +181,26 @@ function SubmitWrapper(req, res) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if (result.length === 0) {
 | 
	
		
			
				|  |  |              let repeat = false;
 | 
	
		
			
				|  |  | -            currentTask.forEach((item) => {
 | 
	
		
			
				|  |  | +            for (const item of currentTask) {
 | 
	
		
			
				|  |  |                  if (req.body.name === item.name) {
 | 
	
		
			
				|  |  |                      if (req.body.albumName === item.albumName) {
 | 
	
		
			
				|  |  |                          if (req.body.kind === item.kind) {
 | 
	
		
			
				|  |  | -                            repeat = true;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                              res.header("Access-Control-Allow-Origin", "*");
 | 
	
		
			
				|  |  |                              res.statusCode = 500
 | 
	
		
			
				|  |  |                              res.end("傻逼,重复了。请在盲目上传之前看看库里有没有好么傻逼?")
 | 
	
		
			
				|  |  | +                            return
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -            if (repeat) {
 | 
	
		
			
				|  |  | -                return
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            req_o = req;
 | 
	
		
			
				|  |  | -            res_o = res;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              if (req.body.file !== undefined) {
 | 
	
		
			
				|  |  | -                queue.add(Submit)
 | 
	
		
			
				|  |  | +                queue.add(() => {
 | 
	
		
			
				|  |  | +                    Submit(req, res)
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  |                  currentTask.push({
 | 
	
		
			
				|  |  |                      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()
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  |  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
 | 
	
		
			
				|  |  |              fetch(ncmAPIUrl + "/song/download/url/v1?id=" + id + "&level=hires", {
 | 
	
		
			
				|  |  |                  headers: {
 | 
	
	
		
			
				|  | @@ -351,7 +347,7 @@ app.post("/ncm/url", function (req, res) {
 | 
	
		
			
				|  |  |                      req.body.link = result_json.data.url
 | 
	
		
			
				|  |  |                      req.body.artist = infos.songs[0].ar[0].name
 | 
	
		
			
				|  |  |                      /// Complete
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                      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", "*");
 | 
	
		
			
				|  |  |              console.log(err)
 | 
	
		
			
				|  |  |          }
 |