12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- var express = require('express');
- var request = require('superagent');
- var router = express.Router();
- /* GET users listing. */
- router.get('/', function(req, res, next) {
- res.header("Content-Type", "application/json;charset=utf-8");
- //console.log('ref:' + req.header('referer'));
- var id = req.query.id;
- var playlist_id = req.query.playlist_id;
- var headers = {};
- headers['Cookie'] = 'appver=1.5.0.75771;';
- headers['referer'] = 'http://music.163.com';
- headers['User-Agent'] = req.headers['user-agent'];
- var url = 'http://music.163.com/api/song/detail/?id=' + id + '&ids=%5B' + id + '%5D';
- if (playlist_id) {
- url = 'http://music.163.com/api/playlist/detail/?id=' + playlist_id;
- }
- netease_http(headers, url, next, function(data) {
- var songs = data.songs;
- songs.map(function(item) {
- var url = item['mp3Url'];
- item['sslUrl'] = url.replace('http://m', 'https://p');
- return item;
- });
- data.songs = songs;
- res.send(data)
- // var output = {
- // data: data,
- // status: {
- // code: 200,
- // message: ''
- // }
- // };
- // if (req.query.callback) {
- // return res.jsonp(output)
- // } else {
- // return res.send(output);
- // }
- });
- });
- function netease_http(headers, url, next, callback) {
- request.get(url).set(headers).end(function(err, res) {
- var body = {};
- if (res && res.text) {
- body = res.text;
- } else if (res && res.body) {
- body = res.body;
- }
- if (typeof body === 'string') {
- try {
- body = JSON.parse(body);
- } catch (e) {}
- }
- if (!err && res.statusCode == 200) {
- callback && callback(body);
- } else {
- var error = new Error(err);
- error.status = 404;
- next(error);
- }
- });
- }
- module.exports = router;
|