Bladeren bron

Merge branch 'advanced_email'

AXCWG 3 maanden geleden
bovenliggende
commit
881ffbb4e9
1 gewijzigde bestanden met toevoegingen van 28 en 52 verwijderingen
  1. 28 52
      main.js

+ 28 - 52
main.js

@@ -58,7 +58,7 @@ let ncmAPIUrl = "http://localhost:5999";
 
 let currentTask = [];
 
-function Submit(req, res) {
+function Submit(req) {
 
     let uuid = crypto.randomUUID()
 
@@ -140,10 +140,8 @@ function Submit(req, res) {
         onData: callback, onError: errcb
     }).then(() => {
 
-        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.execute(("INSERT INTO instrunet_entry (uuid, song_name, album_name, link_to, databinary, artist,kind, albumcover, email) VALUES (?,?,?,?,?,?,?,?,?)"), [uuid, req.body.name, req.body.albumName, req.body.link, fs.readFileSync(kind_of[1]), req.body.artist, req.body.kind, albumCover, req.body.email])
+        db.unprepare()
         fs.rm(kind_of[1], (err) => {
             if (err) {
                 console.log(err);
@@ -205,16 +203,9 @@ app.post('/submit', SubmitWrapper)
 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 = '${await converters2t.convertPromise(req.body.name)}'
-                  and artist = '${await converters2t.convertPromise(req.body.artist)}'
-                  and kind = ${req.body.kind}`, async (err, rowsT) => {
-        db.execute(`SELECT uuid, song_name, album_name, artist, kind
-                    FROM instrunet_entry
-                    WHERE song_name = '${await convertert2s.convertPromise(req.body.name)}'
-                      and artist = '${await convertert2s.convertPromise(req.body.artist)}'
-                      and kind = ${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);
@@ -224,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:") {
@@ -259,7 +249,7 @@ async function SubmitWrapper(req, res) {
 
 
                 queue.add(() => {
-                    Submit(req, res)
+                    Submit(req)
                 })
                 currentTask.push({
                     name: req.body.name, albumName: req.body.albumName, kind: req.body.kind, artist: req.body.artist,
@@ -282,7 +272,6 @@ async function SubmitWrapper(req, res) {
     })
 
 
-
 }
 
 app.post('/lyric', async (req, res) => {
@@ -324,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 => {
@@ -366,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);
             }
@@ -469,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) {
@@ -480,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");
 
@@ -498,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)
+
     }