|
@@ -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)
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|