AXCWG 3 tháng trước cách đây
mục cha
commit
aa3d990a46
3 tập tin đã thay đổi với 50 bổ sung38 xóa
  1. 48 35
      main.js
  2. 0 3
      package.json
  3. 2 0
      test.js

+ 48 - 35
main.js

@@ -1,5 +1,4 @@
 let argv = require('minimist')(process.argv.slice(2));
-const cron = require("node-cron");
 const fs = require('fs');
 const express = require('express');
 const app = express();
@@ -9,7 +8,13 @@ const pool = mysql.createPool({
     keepAliveInitialDelay: 0, enableKeepAlive: true,
 })
 const db = mysql.createConnection({
-    host: 'mc.andyxie.cn', user: 'instrunet', password: 'Moyingren2015', database: "instrunet_data", pool: pool,enableKeepAlive: true, keepAliveInitialDelay: 0,
+    host: 'mc.andyxie.cn',
+    user: 'instrunet',
+    password: 'Moyingren2015',
+    database: "instrunet_data",
+    pool: pool,
+    enableKeepAlive: true,
+    keepAliveInitialDelay: 0,
 })
 const nodemailer = require('nodemailer')
 
@@ -17,18 +22,12 @@ const bodyParser = require("body-parser");
 const nrc = require('node-run-cmd')
 const https = require("node:https");
 const {OpenCC} = require("opencc");
-const converter = new OpenCC('s2t.json')
+const converters2t = new OpenCC('s2t.json')
+const convertert2s = new OpenCC('t2s.json')
 app.use(bodyParser.json({"limit": "200mb"}));
 app.use(express.json());
 app.use(SendSeekable)
-let availCache = {}
-cron.schedule('* */12 * * *', () => {
-    availCache = {}
-})
-cron.schedule('*/30 * * * *', () => {
-    db.prepare("SELECT 1");
 
-})
 
 const transporter = nodemailer.createTransport({
     host: 'smtp.qq.com', port: 465, secure: true, auth: {
@@ -175,29 +174,40 @@ app.options('/submit', function (req, res) {
     res.end()
 })
 app.post('/search_api', async function (req, res) {
-    async function OnFetched(err, rows) {
-        try {
-            db.execute(`SELECT uuid, song_name, album_name, artist, kind
-                        FROM instrunet_entry
-                        WHERE song_name like '%${(req.body.searchStr)}%'
-                           or album_name like '%${(req.body.searchStr)}%'
-                           or artist like '%${(req.body.searchStr)}%'`, (err, result) => {
-                res.header("Access-Control-Allow-Origin", "*");
-                res.end(JSON.stringify(result) === JSON.stringify(rows) ? JSON.stringify(rows) : JSON.stringify(rows.concat(result)));
-            })
 
-        } catch (e) {
-            console.log(e)
-        }
-
-    }
 
     db.execute(`SELECT uuid, song_name, album_name, artist, kind
                 FROM instrunet_entry
-                WHERE song_name like '%${await converter.convertPromise(req.body.searchStr)}%'
-                   or album_name like '%${await converter.convertPromise(req.body.searchStr)}%'
-                   or artist like '%${await converter.convertPromise(req.body.searchStr)}%'`, OnFetched)
-    db.unprepare()
+                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) => {
+            try {
+                let prepare = [];
+                rowsT.forEach(row => {
+                    prepare = prepare.concat(row);
+                })
+                rowsS.forEach(row => {
+                    if (JSON.stringify(prepare).indexOf(JSON.stringify(row)) === -1) {
+                        prepare = prepare.concat(row);
+                    }
+                })
+                res.header("Access-Control-Allow-Origin", "*");
+
+                res.end(JSON.stringify(prepare));
+
+
+            } catch (e) {
+                console.log(e)
+            }
+        });
+    })
+
+
 })
 app.options('/search_api', function (req, res) {
     res.header("Access-Control-Allow-Origin", "*");
@@ -236,13 +246,11 @@ app.options('/ncm/url', function (req, res) {
 app.post("/ncm/url", function (req, res) {
     if (req.body.id) {
         let id = req.body.id
-        fetch(
-            ncmAPIUrl + "/song/download/url/v1?id=" + id + "&level=hires", {
-                headers: {
-                    Cookie: "MUSIC_U=0087F9D8E102A1C1661EBE1792412F3351DA64D1BD3D862BA77E45E9024524725F3A1983345D9B5A4014C725D19C069DD71081F6FE3659F9E1FD412DC427FB809FAF7789AEEA10E9DE6F06C58D1959BA209D2A83C3FA753261036C4CFD0D143B6C7748B8A6D2DD5C2E96E75D1E847E4AAE035CB2C86B175D9AFC6A164C522ED76E24AE654740AB6BAF5B29597F7E3B0158B2EC1C37F2688279871873FA7ADAEF8280A059E84C4BBFB9E4F225F9A2065DF652247D5496587A7B1E3D35DB0CD3F825C06FE5BFE5CFEF1770847099704360504B73C9B396E37CECE4F9DDEE6001588C3C4F5B2861D9ADF339FC47DD480858CA800620785EA032215B63B81025304DB3331F384793FF8EE681247E34C7931176F2F618B66C122F0602F1EA15F963E422DEC79C257F3577A197BECE71E316C751C3B9F5F3CD07BFDC0270A287A1BB6576"
-                }
+        fetch(ncmAPIUrl + "/song/download/url/v1?id=" + id + "&level=hires", {
+            headers: {
+                Cookie: "MUSIC_U=0087F9D8E102A1C1661EBE1792412F3351DA64D1BD3D862BA77E45E9024524725F3A1983345D9B5A4014C725D19C069DD71081F6FE3659F9E1FD412DC427FB809FAF7789AEEA10E9DE6F06C58D1959BA209D2A83C3FA753261036C4CFD0D143B6C7748B8A6D2DD5C2E96E75D1E847E4AAE035CB2C86B175D9AFC6A164C522ED76E24AE654740AB6BAF5B29597F7E3B0158B2EC1C37F2688279871873FA7ADAEF8280A059E84C4BBFB9E4F225F9A2065DF652247D5496587A7B1E3D35DB0CD3F825C06FE5BFE5CFEF1770847099704360504B73C9B396E37CECE4F9DDEE6001588C3C4F5B2861D9ADF339FC47DD480858CA800620785EA032215B63B81025304DB3331F384793FF8EE681247E34C7931176F2F618B66C122F0602F1EA15F963E422DEC79C257F3577A197BECE71E316C751C3B9F5F3CD07BFDC0270A287A1BB6576"
             }
-        ).then(async result => {
+        }).then(async result => {
             let result_json = await result.json()
             if (result_json.data.url !== null) {
                 let infos = await (await fetch(ncmAPIUrl + "/song/detail?ids=" + id)).json();
@@ -276,6 +284,11 @@ app.post("/ncm/url", function (req, res) {
 app.get("/favicon.ico", function (req, res) {
     res.end("");
 })
+let availCache = {};
+setInterval(() => {
+    console.log(availCache);
+
+}, 2000)
 
 // Fetch
 app.get('/:uuid', function (req, res) {

+ 0 - 3
package.json

@@ -18,14 +18,11 @@
     "https": "^1.0.0",
     "minimist": "^1.2.8",
     "mysql2": "^3.11.5",
-    "node-cron": "^3.0.3",
     "node-run-cmd": "^1.0.1",
     "nodemailer": "^6.9.16",
     "opencc": "github:BYVoid/OpenCC",
     "send-seekable": "^1.0.4",
     "sqlite3": "^5.1.7",
-    "swagger-jsdoc": "^6.2.8",
-    "swagger-ui-express": "^5.0.1",
     "ws": "^8.18.0"
   }
 }

+ 2 - 0
test.js

@@ -0,0 +1,2 @@
+let sth = "oiuytrtyuioiuygfghjkjhgfvbnm";
+console.log(sth.indexOf("yuioisuygfg"))