Dotos 8 年之前
父節點
當前提交
5adceeaa18
共有 3 個文件被更改,包括 88 次插入67 次删除
  1. 44 42
      package.json
  2. 13 12
      routes/netease.js
  3. 31 13
      routes/test.js

+ 44 - 42
package.json

@@ -1,42 +1,44 @@
-{
-    "name": "JsonBird",
-    "version": "1.4.0",
-    "description": "A remote data interface proxy service",
-    "author": {
-        "name": "xCss",
-        "mail": "yy.liu@foxmail.com"
-    },
-    "license": "MIT",
-    "private": true,
-    "scripts": {
-        "start": "node ./bin/www",
-        "super": "supervisor ./bin/www"
-    },
-    "repository": {
-        "type": "git",
-        "url": "git+https://github.com/xCss/JsonBird.git"
-    },
-    "keywords": [
-        "JsonBird",
-        "proxy",
-        "data interface proxy",
-        "remote data interface proxy"
-    ],
-    "bugs": {
-        "url": "https://github.com/xCss/JsonBird/issues"
-    },
-    "readme": "./readme.md",
-    "homepage": "https://github.com/xCss/JsonBird#readme",
-    "dependencies": {
-        "body-parser": "~1.15.1",
-        "cookie-parser": "~1.4.3",
-        "debug": "~2.2.0",
-        "express": "~4.13.4",
-        "express-generator": "^4.13.4",
-        "helmet": "^2.3.0",
-        "morgan": "~1.7.0",
-        "pug": "^2.0.0-beta6",
-        "serve-favicon": "~2.3.0",
-        "superagent": "^2.3.0"
-    }
-}
+{
+  "name": "JsonBird",
+  "version": "1.4.0",
+  "description": "A remote data interface proxy service",
+  "author": {
+    "name": "xCss",
+    "mail": "yy.liu@foxmail.com"
+  },
+  "license": "MIT",
+  "private": true,
+  "scripts": {
+    "start": "node ./bin/www",
+    "super": "supervisor ./bin/www"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/xCss/JsonBird.git"
+  },
+  "keywords": [
+    "JsonBird",
+    "proxy",
+    "data interface proxy",
+    "remote data interface proxy"
+  ],
+  "bugs": {
+    "url": "https://github.com/xCss/JsonBird/issues"
+  },
+  "readme": "./readme.md",
+  "homepage": "https://github.com/xCss/JsonBird#readme",
+  "dependencies": {
+    "blueimp-md5": "^2.7.0",
+    "body-parser": "~1.15.1",
+    "cookie-parser": "~1.4.3",
+    "debug": "~2.2.0",
+    "express": "~4.13.4",
+    "express-generator": "^4.13.4",
+    "helmet": "^2.3.0",
+    "js-base64": "^2.1.9",
+    "morgan": "~1.7.0",
+    "pug": "^2.0.0-beta6",
+    "serve-favicon": "~2.3.0",
+    "superagent": "^2.3.0"
+  }
+}

+ 13 - 12
routes/netease.js

@@ -18,18 +18,19 @@ router.get('/', function(req, res, next) {
         url = 'http://music.163.com/api/playlist/detail/?id=' + playlist_id;
     }
     netease_http(headers, url, next, function(data) {
-        var output = {
-            data: data,
-            status: {
-                code: 200,
-                message: ''
-            }
-        };
-        if (req.query.callback) {
-            return res.jsonp(output)
-        } else {
-            return res.send(output);
-        }
+        res.send(data)
+            // var output = {
+            //     data: data,
+            //     status: {
+            //         code: 200,
+            //         message: ''
+            //     }
+            // };
+            // if (req.query.callback) {
+            //     return res.jsonp(output)
+            // } else {
+            //     return res.send(output);
+            // }
     });
 });
 

+ 31 - 13
routes/test.js

@@ -1,19 +1,37 @@
 var express = require('express');
 var request = require('superagent');
 var router = express.Router();
-
-/* GET home page. */
+var crypto = require('crypto');
+/* GET test page. */
 router.get('/', function(req, res, next) {
-    //console.log(req.headers['User-Agent']);
-    res.send(req.headers)
-        // var mydata = {
-        //     page: 1,
-        //     pagesize: 6
-        // };
-
-    // request.post('https://bird.ioliu.cn/joke/').send(mydata).end(function(err, resp) {
-    //     var body = resp.text || resp.body || {};
-    //     res.send(body);
-    // });
+    var id = req.query.id || '';
+    if (id) {
+        var sid = encrypted_id(id);
+        var k = 'http://m2.music.126.net/' + sid + '/' + id + '.mp3'
+        res.send({
+            link: k
+        });
+    } else {
+        res.send({ msg: 'no id' });
+    }
 });
+
+function encrypted_id(id) {
+    var res = {
+        id: id
+    };
+    var magic = Buffer.from('3go8&$8*3*3h0k(2)2', 'ascii');
+    var len = magic.length;
+    var sid = Buffer.from(id, 'ascii');
+    for (var i in sid) {
+        sid[i] = sid[i] ^ magic[i % len];
+    }
+    var m = crypto.createHash('md5');
+    sid = m.update(sid).digest();
+    res['md5'] = sid;
+    var result = sid.toString('base64');
+    result = result.replace(/\//g, '_').replace(/\+/g, '-')
+    return result;
+}
+
 module.exports = router;