AXCWG 3 miesięcy temu
rodzic
commit
244b5ab204
2 zmienionych plików z 45 dodań i 34 usunięć
  1. 44 32
      main.js
  2. 1 2
      test.js

+ 44 - 32
main.js

@@ -63,9 +63,12 @@ function Submit(req, res) {
 
     let albumCover = null;
     try {
+
         fetch(req.body.file).then(res => {
             res.arrayBuffer().then(r => fs.writeFileSync("./" + uuid, Buffer.from(r)));
         })
+
+
         if (URL.canParse(req.body.albumCover)) {
             console.log("can parse ")
             fetch(req.body.albumCover).then(res => {
@@ -196,9 +199,14 @@ function SubmitWrapper(req, res) {
                 from instrunet_entry
                 where song_name = "${req.body.name}"
                   and artist = "${req.body.artist}"
-                  and kind = ${req.body.kind} `, (err, result) => {
+                  and kind = ${req.body.kind} `, async (err, result) => {
 
         if (result.length === 0) {
+            // Verify
+            if(req.body.file.substring(0,5) !=="data:"){
+                res.status(500).header("Access-Control-Allow-Origin", "*").end("想都别想");
+                return
+            }
             for (const item of currentTask) {
                 if (req.body.name === item.name) {
                     if (req.body.albumName === item.albumName) {
@@ -213,27 +221,28 @@ function SubmitWrapper(req, res) {
                     }
                 }
             }
-
-            if (req.body.name === undefined) {
-                req.body.name = "未知名称"
-            }
-            if (req.body.albumName === undefined) {
-                req.body.albumName = "未知专辑"
+            for (let prop of [req.body.name, req.body.albumName, req.body.artist]) {
+                if (prop === undefined || prop === "" || prop === null) {
+                    res.status(500).header("Access-Control-Allow-Origin", "*").end("想都别想");
+                    return
+                }
             }
+
+
+
             if (req.body.link === undefined) {
                 req.body.link = ""
             }
-            if (req.body.artist === undefined) {
-                req.body.artist = "未知艺术家"
-            }
-            if (req.body.file !== undefined) {
-                queue.add(() => {
-                    Submit(req, res)
-                })
-                currentTask.push({
-                    name: req.body.name, albumName: req.body.albumName, kind: req.body.kind, artist: req.body.artist,
-                })
-            }
+
+
+
+            queue.add(() => {
+                Submit(req, res)
+            })
+            currentTask.push({
+                name: req.body.name, albumName: req.body.albumName, kind: req.body.kind, artist: req.body.artist,
+            })
+
             console.log(queue.contents)
             console.log(currentTask)
             if (currentTask.length === 1) {
@@ -379,8 +388,8 @@ app.options('/ncm/url', function (req, res) {
     res.end()
 })
 app.post("/ncm/url", function (req, res) {
-    if(isNaN(Number.parseInt(req.query.id))){
-        res.status(500).header("Access-Control-Allow-Origin", "*").end("傻逼");
+    if (Number.isNaN(Number(req.body.id))) {
+        res.status(500).header("Access-Control-Allow-Origin", "*").end("格式错误");
         return
     }
 
@@ -394,21 +403,24 @@ app.post("/ncm/url", function (req, res) {
             }).then(async result => {
                 if (result.status === 200 || result.status === 304) {
                     let result_json = await result.json()
-                    let infos = await (await fetch(ncmAPIUrl + "/song/detail?ids=" + id)).json();
-                    req.body.file = "data:audio/flac;base64," + Buffer.from(await (await fetch(result_json.data.url)).arrayBuffer()).toString("base64")
-                    req.body.name = infos.songs[0].name;
-                    req.body.albumName = infos.songs[0].al.name
-                    req.body.albumCover = infos.songs[0].al.picUrl
-                    req.body.link = result_json.data.url
-                    req.body.artist = infos.songs[0].ar[0].name
-                    /// Complete
-
-
-                    SubmitWrapper(req, res)
+                    if (result_json.data.url !== null) {
+                        let infos = await (await fetch(ncmAPIUrl + "/song/detail?ids=" + id)).json();
+                        req.body.file = "data:audio/flac;base64," + Buffer.from(await (await fetch(result_json.data.url)).arrayBuffer()).toString("base64")
+                        req.body.name = infos.songs[0].name;
+                        req.body.albumName = infos.songs[0].al.name
+                        req.body.albumCover = infos.songs[0].al.picUrl
+                        req.body.link = result_json.data.url
+                        req.body.artist = infos.songs[0].ar[0].name
+                        /// Complete
+
+
+                        SubmitWrapper(req, res)
+                    } else {
+                        res.status(500).header("Access-Control-Allow-Origin", "*").end("不存在");
+                    }
 
 
                 } else {
-
                     res.status(404).header("Access-Control-Allow-Origin", "*").send("未找到或出现错误")
                 }
 

+ 1 - 2
test.js

@@ -3,5 +3,4 @@ const req = require("express/lib/request");
 let queue1 = new queue();
 queue1.autoRun = false;
 
-console.log(Number.parseInt("            res.status(500).header(\"Access-Control-Allow-Origin\", \"*\");\n"));
-
+console.log("dwasdwa" === ("dwsdwa" || "dwasdwa" || "dwa2112sdwa"))