From cb6ce5bb650e35f226c540d781c78ea0e62dfc1f Mon Sep 17 00:00:00 2001 From: binaryify Date: Mon, 27 Nov 2017 16:46:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20/=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.MD | 60 +++++++++++++++++++++++------- package.json | 2 +- router/top_list.js | 92 ++++++++++++++++++++++++++-------------------- 3 files changed, 100 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.MD b/CHANGELOG.MD index 8dc6b48..3f53805 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,76 +1,108 @@ # 更新日志 + +### 2.7.6 | 2017.11.27 + +更新 / 修复排行榜接口 + ### 2.7.2 | 2017.9.7 + 修复搜索接口 offset 参数失效问题 ### 2.7.0 | 2017.8.21 + 优化刷新登录代码 ### 2.6.5 | 2017.7.16 + 优化 CORS 设置 ### 2.6.4 | 2017.7.16 -添加缓存机制和随机 UA 机制 感谢[@u3u](https://github.com/u3u) -[issue:77](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/77) -优化请求代码 感谢 [@huhuime](https://github.com/huhuime) + +添加缓存机制和随机 UA 机制 感谢[@u3u](https://github.com/u3u) +[issue:77](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/77) 优化请求 +代码 感谢 [@huhuime](https://github.com/huhuime) [issue:83](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/83) ### 2.6.2 | 2017.7.16 + 修复垃圾桶接口 ### 2.6.1 | 2017.7.16 + 修复红心接口 ### 2.6.0 | 2017.6.25 + 修复签到接口 ### 2.5.9 | 2017.6.14 + 增加启动说明页 ### 2.5.8 | 2017.6.1 + 修复若干细节问题 ### 2.5.7 | 2017.5.22 + 修复若干问题 ### 2.5.6 | 2017.5.14 + 增加动态消息接口 ### 2.5.5 | 2017.5.10 + 修复 mv 排行榜接口崩溃问题 ### 2.5.4 | 2017.5.5 -新增点赞接口,更新文档 + +新增点赞接口 , 更新文档 ### 2.5.3 | 2017.5.2 -修复歌手单曲数据空白问题和文档获取歌手单曲url 描述问题,更新文档 + +修复歌手单曲数据空白问题和文档获取歌手单曲 url 描述问题 , 更新文档 ### 2.5.0 | 2017.4.29 -增加 mv/专辑/歌单评论接口,增加云盘相关接口,增加获取用户动态/信息接口,增加关注/粉丝列表接口,增加收藏歌单接口,增加相似 mv/歌曲/用户接口,增加 banner 接口,增加刷新登录接口,增加电台相关接口,补充评论接口,更新文档 + +增加 mv/ 专辑 / 歌单评论接口 , 增加云盘相关接口 , 增加获取用户动态 / 信息接口 , +增加关注 / 粉丝列表接口 , 增加收藏歌单接口 , 增加相似 mv/ 歌曲 / 用户接口 , 增加 +banner 接口 , 增加刷新登录接口 , 增加电台相关接口 , 补充评论接口 , 更新文档 ### 2.4.6 | 2017.4.21 -增加播放 mv 接口,更新文档 + +增加播放 mv 接口 , 更新文档 ### 2.4.5 | 2017.4.20 -增加歌手专辑,歌手单曲等接口,修复/album 接口描述错误,更新文档 + +增加歌手专辑 , 歌手单曲等接口 , 修复 /album 接口描述错误 , 更新文档 ### 2.4.0 | 2017.4.20 -增加歌单(网友精选碟),新碟上架,热门歌手等接口,更新文档 + +增加歌单(网友精选碟 ), 新碟上架 , 热门歌手等接口 , 更新文档 ### 2.3.4 | 2017.4.20 -增加歌曲详情接口,更新文档 + +增加歌曲详情接口 , 更新文档 ### 2.3.0 | 2017.4.15 -增加排行榜接口,更新文档 + +增加排行榜接口 , 更新文档 ### 2.2.0 |2017.4.14 -增加私人 FM, 喜欢歌曲,垃圾桶,每日签到等接口,更新文档 + +增加私人 FM, 喜欢歌曲 , 垃圾桶 , 每日签到等接口 , 更新文档 ### 2.1.3 | 2017.4.6 + 改善文档 ### 2.1.0 | 2017.4.6 -增加获取评论接口以及对应单元测试,增加更新日志 + +增加获取评论接口以及对应单元测试 , 增加更新日志 ### 2.0.0 | 2017.4.1 -版本升级到 2.0.增加使用文档,完成项目重构,增加更完善的单元测试,升级 api 到 v2+,支持登录并获取用户信息和创建的歌单,可通过获取音乐 url 接口获取用户歌单里的的音乐,获取每日推荐歌单和每日推荐音乐 +版本升级到 2.0. 增加使用文档 , 完成项目重构 , 增加更完善的单元测试 , 升级 api 到 +v2+, 支持登录并获取用户信息和创建的歌单 , 可通过获取音乐 url 接口获取用户歌单里 +的的音乐 , 获取每日推荐歌单和每日推荐音乐 diff --git a/package.json b/package.json index 878d2a5..a08b0fd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "NeteaseCloudMusicApi", - "version": "2.7.4", + "version": "2.7.6", "description": "网易云音乐 NodeJS 版 API", "scripts": { "start": "node app.js", diff --git a/router/top_list.js b/router/top_list.js index a083fe8..686a83f 100644 --- a/router/top_list.js +++ b/router/top_list.js @@ -1,42 +1,56 @@ const top_list_all = { - '0': ['云音乐新歌榜', '/api/playlist/detail?id=3779629'], - '1': ['云音乐热歌榜', '/api/playlist/detail?id=3778678'], - '2': ['网易原创歌曲榜', '/api/playlist/detail?id=2884035'], - '3': ['云音乐飙升榜', '/api/playlist/detail?id=19723756'], - '4': ['云音乐电音榜', '/api/playlist/detail?id=10520166'], - '5': ['UK排行榜周榜', '/api/playlist/detail?id=180106'], - '6': ['美国Billboard周榜', '/api/playlist/detail?id=60198'], - '7': ['KTV嗨榜', '/api/playlist/detail?id=21845217'], - '8': ['iTunes榜', '/api/playlist/detail?id=11641012'], - '9': ['Hit FM Top榜', '/api/playlist/detail?id=120001'], - '10': ['日本Oricon周榜', '/api/playlist/detail?id=60131'], - '11': ['韩国Melon排行榜周榜', '/api/playlist/detail?id=3733003'], - '12': ['韩国Mnet排行榜周榜', '/api/playlist/detail?id=60255'], - '13': ['韩国Melon原声周榜', '/api/playlist/detail?id=46772709'], - '14': ['中国TOP排行榜(港台榜)', '/api/playlist/detail?id=112504'], - '15': ['中国TOP排行榜(内地榜)', '/api/playlist/detail?id=64016'], - '16': ['香港电台中文歌曲龙虎榜', '/api/playlist/detail?id=10169002'], - '17': ['华语金曲榜', '/api/playlist/detail?id=4395559'], - '18': ['中国嘻哈榜', '/api/playlist/detail?id=1899724'], - '19': ['法国 NRJ EuroHot 30周榜', '/api/playlist/detail?id=27135204'], - '20': ['台湾Hito排行榜', '/api/playlist/detail?id=112463'], - '21': ['Beatport全球电子舞曲榜', '/api/playlist/detail?id=3812895'] -} -const express = require('express') -const router = express() -const { createRequest } = require('../util/util') + "0": ["云音乐新歌榜", "3779629"], + "1": ["云音乐热歌榜", "3778678"], + "2": ["网易原创歌曲榜", "2884035"], + "3": ["云音乐飙升榜", "19723756"], + "4": ["云音乐电音榜", "10520166"], + "5": ["UK排行榜周榜", "180106"], + "6": ["美国Billboard周榜", "60198"], + "7": ["KTV嗨榜", "21845217"], + "8": ["iTunes榜", "11641012"], + "9": ["Hit FM Top榜", "120001"], + "10": ["日本Oricon周榜", "60131"], + "11": ["韩国Melon排行榜周榜", "3733003"], + "12": ["韩国Mnet排行榜周榜", "60255"], + "13": ["韩国Melon原声周榜", "46772709"], + "14": ["中国TOP排行榜(港台榜)", "112504"], + "15": ["中国TOP排行榜(内地榜)", "64016"], + "16": ["香港电台中文歌曲龙虎榜", "10169002"], + "17": ["华语金曲榜", "4395559"], + "18": ["中国嘻哈榜", "1899724"], + "19": ["法国 NRJ EuroHot 30周榜", "27135204"], + "20": ["台湾Hito排行榜", "112463"], + "21": ["Beatport全球电子舞曲榜", "3812895"] +}; +const express = require("express"); +const router = express(); +const { createRequest, createWebAPIRequest } = require("../util/util"); -router.get('/', (req, res) => { - const idx = req.query.idx - const action = 'http://music.163.com' + top_list_all[idx][1] - createRequest(`${action}`, 'GET', null) - .then(result => { - res.setHeader('Content-Type', 'application/json') - res.send(result) - }) - .catch(err => { - res.status(502).send('fetch error') - }) -}) +router.get("/", (req, res) => { + const idx = req.query.idx; + const id = top_list_all[idx][1]; + const cookie = req.get("Cookie") ? req.get("Cookie") : ""; + const action = "/weapi/v3/playlist/detail"; + const data = { + id, + limit: req.query.limit || 30, + offset: req.query.limit || 0, + total: true, + n: 1000, + csrf_token: "" + }; + createWebAPIRequest( + "music.163.com", + action, + "POST", + data, + cookie, + music_req => { + res.setHeader("Content-Type", "application/json"); + res.send(music_req); + }, + err => res.status(502).send("fetch error") + ); +}); -module.exports = router +module.exports = router;