Explorar el Código

fix some error

Dotos hace 8 años
padre
commit
1fc024398a
Se han modificado 2 ficheros con 49 adiciones y 29 borrados
  1. 5 8
      routes/netease.js
  2. 44 21
      utils/util.js

+ 5 - 8
routes/netease.js

@@ -11,20 +11,17 @@ const links = {
 
 /* GET users listing. */
 router.get('/:channel', function(req, res, next) {
-
-    let ip = req.ip.replace('::1', '127.0.0.1')
     const id = req.query.id
     const br = req.query.br || 999000
     const channel = req.params['channel']
+
+    // console.log(req)
     let config = {
         path: links[channel],
         params: {
             "ids": [id],
             "br": 999000,
             "csrf_token": ""
-        },
-        headers: {
-            'X-Real-IP': ip
         }
     }
     switch (channel) {
@@ -57,6 +54,7 @@ router.get('/:channel', function(req, res, next) {
     }
     util.requestServer(config).then(ret => {
         if (channel == 'song') {
+
             let songs = ret.songs
             if (songs.length) {
                 config['path'] = links.song_url
@@ -76,9 +74,8 @@ router.get('/:channel', function(req, res, next) {
                         }
                     })
                 }).catch(ex => {
-                    console.log(ex)
                     res.send({
-                        data: {},
+                        data: ex,
                         status: {
                             code: -1,
                             msg: 'something happend. Please checked your id or url'
@@ -101,7 +98,7 @@ router.get('/:channel', function(req, res, next) {
     }).catch(err => {
         console.log(err)
         res.send({
-            data: {},
+            data: err,
             status: {
                 code: -1,
                 msg: 'something happend. Please checked your id or url'

+ 44 - 21
utils/util.js

@@ -1,32 +1,55 @@
 const encrypt = require('./encrypt');
 const request = require('request');
+const superagent = require('superagent');
 const qs = require('querystring');
 
 let options = {
-    method: 'POST',
-    headers: {
-        'Accept': '*/*',
-        'Accept-Language': 'zh-CN,zh;q=0.8,gl;q=0.6,zh-TW;q=0.4',
-        'Connection': 'keep-alive',
-        'Content-Type': 'application/x-www-form-urlencoded',
-        'Referer': 'http://music.163.com',
-        'Host': 'music.163.com',
-        'Cookie': 'appver=2.0.2;',
-        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36',
+        method: 'POST',
+        headers: {
+            'Accept': '*/*',
+            'Accept-Language': 'zh-CN,zh;q=0.8,gl;q=0.6,zh-TW;q=0.4',
+            'Connection': 'keep-alive',
+            'Content-Type': 'application/x-www-form-urlencoded',
+            'Referer': 'http://music.163.com',
+            'Host': 'music.163.com',
+            'Cookie': 'appver=2.0.2;',
+            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36',
+            'X-Real-IP': '127.0.0.1',
+            'x-from-src': '127.0.0.1'
+        }
     }
-}
+    // const requestServer = (config) => {
+    //     options['uri'] = `http://music.163.com${config.path}`
+    //     options['form'] = encrypt(config.params)
+    //     return new Promise((resolve, reject) => {
+    //         request(options, (err, ret, body) => {
+    //             if (!err && ret.statusCode === 200) {
+    //                 resolve(JSON.parse(body))
+    //             } else {
+    //                 reject(err)
+    //             }
+    //         })
+    //     })
+    // }
+
 const requestServer = (config) => {
-    options['uri'] = `http://music.163.com${config.path}`
-    options['form'] = encrypt(config.params)
-    options['headers']['X-Real-IP'] = config['headers']['X-Real-IP'] || '127.0.0.1'
     return new Promise((resolve, reject) => {
-        request(options, (err, ret, body) => {
-            if (!err && ret.statusCode === 200) {
-                resolve(JSON.parse(body))
-            } else {
-                reject(err)
-            }
-        })
+        superagent
+            .post(`http://music.163.com${config.path}`)
+            .set(options.headers)
+            .send(encrypt(config.params))
+            .end((err, res) => {
+                if (err || !res.ok) {
+                    reject(err)
+                } else {
+                    let ret = res.text || res.body
+                    if (typeof ret === 'object')
+                        resolve(ret)
+                    else {
+                        resolve(JSON.parse(ret))
+                    }
+                }
+            })
     })
 }