AXCWG 3 bulan lalu
induk
melakukan
d7739aaede
1 mengubah file dengan 23 tambahan dan 37 penghapusan
  1. 23 37
      main.js

+ 23 - 37
main.js

@@ -204,8 +204,8 @@ async function SubmitWrapper(req, res) {
     // TODO
     //  May extract logic for dupe check in the future.
 
-    db.execute(("SELECT uuid, song_name, album_name, artist, kind FROM instrunet_entry WHERE song_name = '?' and artist = '?' and kind = ?"), [await converters2t.convertPromise(req.body.name), await converters2t.convertPromise(req.body.artist), req.body.kind], async (err, rowsT) => {
-        db.execute("SELECT uuid, song_name, album_name, artist, kind FROM instrunet_entry WHERE song_name = '?' and artist = '?' and kind = ?", [await convertert2s.convertPromise(req.body.name), await convertert2s.convertPromise(req.body.artist), req.body.kind],  (err, rowsS) => {
+    db.execute(("SELECT uuid, song_name, album_name, artist, kind FROM instrunet_entry WHERE song_name = ? and artist = ? and kind = ?"), [await converters2t.convertPromise(req.body.name), await converters2t.convertPromise(req.body.artist), req.body.kind], async (err, rowsT) => {
+        db.execute("SELECT uuid, song_name, album_name, artist, kind FROM instrunet_entry WHERE song_name = ? and artist = ? and kind = ?", [await convertert2s.convertPromise(req.body.name), await convertert2s.convertPromise(req.body.artist), req.body.kind], (err, rowsS) => {
             let dedupe = [];
             rowsT.forEach(row => {
                 dedupe = dedupe.concat(row);
@@ -215,7 +215,6 @@ async function SubmitWrapper(req, res) {
                     dedupe = dedupe.concat(row);
                 }
             })
-            console.log(dedupe);
             if (dedupe.length === 0) {
                 // Verify
                 if (req.body.file.substring(0, 5) !== "data:") {
@@ -314,16 +313,8 @@ app.options('/submit', function (req, res) {
 app.post('/search_api', async function (req, res) {
 
 
-    db.execute(`SELECT uuid, song_name, album_name, artist, kind
-                FROM instrunet_entry
-                WHERE song_name like '%${await converters2t.convertPromise(req.body.searchStr)}%'
-                   or album_name like '%${await converters2t.convertPromise(req.body.searchStr)}%'
-                   or artist like '%${await converters2t.convertPromise(req.body.searchStr)}%'`, async (err, rowsT) => {
-        db.execute(`SELECT uuid, song_name, album_name, artist, kind
-                    FROM instrunet_entry
-                    WHERE song_name like '%${await convertert2s.convertPromise(req.body.searchStr)}%'
-                       or album_name like '%${await convertert2s.convertPromise(req.body.searchStr)}%'
-                       or artist like '%${await convertert2s.convertPromise(req.body.searchStr)}%'`, (err, rowsS) => {
+    db.execute("SELECT uuid, song_name, album_name, artist, kind FROM instrunet_entry WHERE song_name like ? or album_name like ? or artist like ?", [`%${await converters2t.convertPromise(req.body.searchStr)}%`, `%${await converters2t.convertPromise(req.body.searchStr)}%`, `%${await converters2t.convertPromise(req.body.searchStr)}%`], async (err, rowsT) => {
+        db.execute("SELECT uuid, song_name, album_name, artist, kind FROM instrunet_entry WHERE song_name like ? or album_name like ? or artist like ?", [`%${await convertert2s.convertPromise(req.body.searchStr)}%`, `%${await convertert2s.convertPromise(req.body.searchStr)}%`, `%${await convertert2s.convertPromise(req.body.searchStr)}%`], (err, rowsS) => {
             try {
                 let prepare = [];
                 rowsT.forEach(row => {
@@ -356,9 +347,7 @@ app.get("/getSingle", function (req, res) {
     let uuid = crypto.randomUUID()
 
     if (req.query.id) {
-        db.execute(`SELECT song_name, album_name, artist, kind, albumcover
-                    FROM instrunet_entry
-                    WHERE uuid = "${req.query.id}"`, async function (err, rows) {
+        db.execute("SELECT song_name, album_name, artist, kind, albumcover FROM instrunet_entry WHERE uuid = ?", [req.query.id], async function (err, rows) {
             if (err) {
                 console.log(err);
             }
@@ -459,9 +448,10 @@ app.get("/favicon.ico", function (req, res) {
     res.end("");
 })
 let availCache = {};
-setInterval(() => {
-    availCache = {};
-}, 1800000)
+
+// setInterval(() => {
+//     availCache = {};
+// }, 1800000)
 
 // Fetch
 app.get('/:uuid', function (req, res) {
@@ -470,17 +460,18 @@ app.get('/:uuid', function (req, res) {
 
     function Provider(err, rows) {
         try {
+            availCache[uuid] = rows[0]
             res.contentType("audio/mp3");
             res.header("Access-Control-Allow-Origin", "*");
             res.header("Access-Control-Allow-Headers", "Content-Type");
-            res.header("Access-Control-Allow-Origin", "*");
-            res.header('Content-Disposition', `attachment; filename="${encodeURI(rows[0].song_name)}"`);
+            res.header('Content-Disposition', `attachment; filename="${encodeURI(availCache[uuid].song_name)}.mp3"`);
             /** @type {ArrayBuffer}*/
-            availCache[uuid] = rows[0].databinary
-            res.sendSeekable(availCache[uuid])
+            res.sendSeekable(availCache[uuid].databinary)
 
 
         } catch (e) {
+            res.contentType("text/plain");
+            res.status(500).header("Access-Control-Allow-Origin", "*").end("Err.");
             console.log(e)
             console.log("Triggered err");
 
@@ -488,22 +479,17 @@ app.get('/:uuid', function (req, res) {
     }
 
     if (availCache[uuid] !== undefined) {
-        db.execute(`SELECT song_name
-                    FROM instrunet_entry
-                    WHERE uuid = '${uuid}'`, (err, rows) => {
-            res.contentType("audio/mp3");
-            res.header("Access-Control-Allow-Origin", "*");
-            res.header("Access-Control-Allow-Headers", "Content-Type");
-            res.header("Access-Control-Allow-Origin", "*");
-            res.header('Content-Disposition', `attachment; filename="${encodeURI(rows[0].song_name)}"`);
-            res.sendSeekable(availCache[uuid])
-        })
+        res.contentType("audio/mp3");
+        res.header("Access-Control-Allow-Origin", "*");
+        res.header("Access-Control-Allow-Headers", "Content-Type");
+        res.header("Access-Control-Allow-Origin", "*");
+        res.header('Content-Disposition', `attachment; filename="${encodeURI(availCache[uuid].song_name)}.mp3"`);
+        res.sendSeekable(availCache[uuid].databinary)
+
 
     } else {
-        db.execute(`SELECT song_name, databinary
-                    FROM instrunet_entry
-                    WHERE uuid = '${uuid}'`, Provider)
-        db.unprepare()
+        db.execute("SELECT song_name, databinary FROM instrunet_entry WHERE uuid = ?", [uuid], Provider)
+
     }