From 31e95721a766058ef0d1307aea495039c3e9829d Mon Sep 17 00:00:00 2001 From: binaryify Date: Sat, 5 Mar 2022 17:59:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=AD=8C=E6=89=8B=E7=B2=89?= =?UTF-8?q?=E4=B8=9D=E6=95=B0=E9=87=8F=E6=8E=A5=E5=8F=A3=20#1485=20,=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=9F=B3=E4=B9=90=E4=BA=BA=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?(=E6=96=B0)=E6=8E=A5=E5=8F=A3,=20=E6=9B=B4=E6=96=B0=20appver?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.MD | 7 +++++++ README.MD | 4 +++- docs/README.md | 27 ++++++++++++++++++++++++--- interface.d.ts | 2 ++ module/artist_follow_count.js | 18 ++++++++++++++++++ module/artist_new_mv.js | 2 +- module/artist_new_song.js | 2 +- module/cloud.js | 2 +- module/cloud_match.js | 2 +- module/comment_hug_list.js | 2 +- module/homepage_block_page.js | 2 +- module/homepage_dragon_ball.js | 2 +- module/hug_comment.js | 2 +- module/like.js | 2 +- module/musician_tasks_new.js | 16 ++++++++++++++++ module/send_album.js | 2 +- module/send_song.js | 2 +- module/user_comment_history.js | 2 +- module/user_event.js | 2 +- package.json | 2 +- util/request.js | 2 +- 21 files changed, 85 insertions(+), 19 deletions(-) create mode 100644 module/artist_follow_count.js create mode 100644 module/musician_tasks_new.js diff --git a/CHANGELOG.MD b/CHANGELOG.MD index 98f2b4b..4db799d 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,4 +1,11 @@ # 更新日志 +### 4.5.7 | 2022.03.05 +- 新增歌手粉丝数量接口[#1485](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/1485) + +- 新增音乐人任务(新)接口 + +- 更新 `appver` + ### 4.5.6 | 2022.02.12 - 歌单封面上传接口缺失参数时返回状态码修正 diff --git a/README.MD b/README.MD index 51bf5fa..7b0d9d1 100644 --- a/README.MD +++ b/README.MD @@ -43,6 +43,7 @@ $ npm install ``` ## 运行 +调用前务必阅读文档的`调用前须知` ```shell $ node app.js @@ -357,7 +358,8 @@ banner({ type:0 }).then(res=>{ 235. 最近播放-播客 236. 签到进度 237. 重复昵称检测 - +238. 歌手粉丝数量 +239. 音乐人任务(新) ## 更新日志 [changelog](https://github.com/Binaryify/NeteaseCloudMusicApi/blob/master/CHANGELOG.MD) diff --git a/docs/README.md b/docs/README.md index 841ca9e..e64fbd7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -253,6 +253,8 @@ 235. 最近播放-播客 236. 签到进度 237. 重复昵称检测 +238. 歌手粉丝数量 +239. 音乐人任务(新) ## 安装 @@ -3574,6 +3576,17 @@ type='1009' 获取其 id, 如`/search?keywords= 代码时间 &type=1009` ### 歌手粉丝 说明 : 调用此接口 , 传入歌手 id, 可获取歌手粉丝 +**必选参数 :** `id` : 歌手 id + + +**接口地址 :** `/artist/fans` + +**调用例子 :** `/artist/fans?id=2116&limit=10&offset=0` + +### 歌手粉丝数量 + +说明 : 调用此接口 , 传入歌手 id, 可获取歌手粉丝数量 + **必选参数 :** `id` : 歌手 id @@ -3581,9 +3594,9 @@ type='1009' 获取其 id, 如`/search?keywords= 代码时间 &type=1009` `offset`: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)\*10, 其中 10 为 limit 的值 -**接口地址 :** `/artist/fans` +**接口地址 :** `/artist/follow/count` -**调用例子 :** `/artist/fans?id=2116&limit=10&offset=0` +**调用例子 :** `/artist/follow/count?id=2116` ### 数字专辑详情 @@ -3627,12 +3640,20 @@ type='1009' 获取其 id, 如`/search?keywords= 代码时间 &type=1009` ### 音乐人任务 -说明 : 音乐人登录后调用此接口 , 可获取音乐人任务。返回的数据中`status`字段为任务状态,0 表示任务未开始,10 表示任务正在进行中,20 表示任务完成,但未领取云豆,100 表示任务完成,并且已经领取了相应的云豆 +说明 : 音乐人登录后调用此接口 , 可获取音乐人任务。返回的数据中`status`字段为任务状态,0 表示任务未开始,10 表示任务正在进行中,20 表示任务完成,但未领取云豆,100 表示任务完成,并且已经领取了相应的云豆(貌似只能获取到做过的任务了) **接口地址 :** `/musician/tasks` **调用例子 :** `/musician/tasks` +### 音乐人任务(新) + +说明 : 音乐人登录后调用此接口 , 可获取音乐人任务。返回的数据中`status`字段为任务状态,0 表示任务未开始,10 表示任务正在进行中,20 表示任务完成,但未领取云豆,100 表示任务完成,并且已经领取了相应的云豆 + +**接口地址 :** `/musician/tasks/new` + +**调用例子 :** `/musician/tasks/new` + ### 账号云豆数 说明 : 音乐人登录后调用此接口 , 可获取账号云豆数 diff --git a/interface.d.ts b/interface.d.ts index 257b926..ce8b294 100644 --- a/interface.d.ts +++ b/interface.d.ts @@ -1607,3 +1607,5 @@ export function nickname_check( nickname: string } & RequestBaseConfig, ): Promise + +export function musician_tasks_new(params: RequestBaseConfig): Promise diff --git a/module/artist_follow_count.js b/module/artist_follow_count.js new file mode 100644 index 0000000..93afda2 --- /dev/null +++ b/module/artist_follow_count.js @@ -0,0 +1,18 @@ +// 歌手粉丝数量 + +module.exports = (query, request) => { + const data = { + id: query.id, + } + return request( + 'POST', + `https://music.163.com/weapi/artist/follow/count/get`, + data, + { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + }, + ) +} diff --git a/module/artist_new_mv.js b/module/artist_new_mv.js index 6c65343..d385e35 100644 --- a/module/artist_new_mv.js +++ b/module/artist_new_mv.js @@ -1,6 +1,6 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { limit: query.limit || 20, startTimestamp: query.before || Date.now(), diff --git a/module/artist_new_song.js b/module/artist_new_song.js index a367f8c..41fbde5 100644 --- a/module/artist_new_song.js +++ b/module/artist_new_song.js @@ -1,6 +1,6 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { limit: query.limit || 20, startTimestamp: query.before || Date.now(), diff --git a/module/cloud.js b/module/cloud.js index b7cdac3..49e91c6 100644 --- a/module/cloud.js +++ b/module/cloud.js @@ -3,7 +3,7 @@ const uploadPlugin = require('../plugins/songUpload') const md5 = require('md5') module.exports = async (query, request) => { query.cookie.os = 'pc' - query.cookie.appver = '2.7.1.198277' + query.cookie.appver = '2.9.7' const bitrate = 999000 if (!query.songFile) { return Promise.reject({ diff --git a/module/cloud_match.js b/module/cloud_match.js index d28d88b..98fc8aa 100644 --- a/module/cloud_match.js +++ b/module/cloud_match.js @@ -1,6 +1,6 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { userId: query.uid, songId: query.sid, diff --git a/module/comment_hug_list.js b/module/comment_hug_list.js index 394a2df..eaf535f 100644 --- a/module/comment_hug_list.js +++ b/module/comment_hug_list.js @@ -1,7 +1,7 @@ const { resourceTypeMap } = require('../util/config.json') module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' query.type = resourceTypeMap[query.type || 0] const threadId = query.type + query.sid const data = { diff --git a/module/homepage_block_page.js b/module/homepage_block_page.js index af4b074..f214a6d 100644 --- a/module/homepage_block_page.js +++ b/module/homepage_block_page.js @@ -3,7 +3,7 @@ // query.refresh 是否刷新数据 module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { refresh: query.refresh || false, cursor: query.cursor } return request( 'POST', diff --git a/module/homepage_dragon_ball.js b/module/homepage_dragon_ball.js index 00231dd..e2421bf 100644 --- a/module/homepage_dragon_ball.js +++ b/module/homepage_dragon_ball.js @@ -8,7 +8,7 @@ module.exports = (query, request) => { query.cookie.MUSIC_A = config.anonymous_token const data = {} query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' return request( 'POST', `https://music.163.com/eapi/homepage/dragon/ball/static`, diff --git a/module/hug_comment.js b/module/hug_comment.js index ce44528..fc88f13 100644 --- a/module/hug_comment.js +++ b/module/hug_comment.js @@ -1,7 +1,7 @@ const { resourceTypeMap } = require('../util/config.json') module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' query.type = resourceTypeMap[query.type || 0] const threadId = query.type + query.sid const data = { diff --git a/module/like.js b/module/like.js index bd90591..e13e785 100644 --- a/module/like.js +++ b/module/like.js @@ -2,7 +2,7 @@ module.exports = (query, request) => { query.cookie.os = 'pc' - query.cookie.appver = '2.7.1.198277' + query.cookie.appver = '2.9.7' query.like = query.like == 'false' ? false : true const data = { alg: 'itembased', diff --git a/module/musician_tasks_new.js b/module/musician_tasks_new.js new file mode 100644 index 0000000..fd4953e --- /dev/null +++ b/module/musician_tasks_new.js @@ -0,0 +1,16 @@ +// 获取音乐人任务 + +module.exports = (query, request) => { + const data = {} + return request( + 'POST', + `https://music.163.com/api/nmusician/workbench/mission/stage/list `, + data, + { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + }, + ) +} diff --git a/module/send_album.js b/module/send_album.js index 8af5673..d6693a5 100644 --- a/module/send_album.js +++ b/module/send_album.js @@ -2,7 +2,7 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { id: query.id, msg: query.msg || '', diff --git a/module/send_song.js b/module/send_song.js index 932cde1..b2ce0a2 100644 --- a/module/send_song.js +++ b/module/send_song.js @@ -2,7 +2,7 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { id: query.id, msg: query.msg || '', diff --git a/module/user_comment_history.js b/module/user_comment_history.js index bb98221..339be30 100644 --- a/module/user_comment_history.js +++ b/module/user_comment_history.js @@ -1,6 +1,6 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { compose_reminder: 'true', compose_hot_comment: 'true', diff --git a/module/user_event.js b/module/user_event.js index 0c642ae..521b0dd 100644 --- a/module/user_event.js +++ b/module/user_event.js @@ -2,7 +2,7 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { getcounts: true, time: query.lasttime || -1, diff --git a/package.json b/package.json index 4ca28dc..15d0793 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "NeteaseCloudMusicApi", - "version": "4.5.7", + "version": "4.5.8", "description": "网易云音乐 NodeJS 版 API", "scripts": { "start": "node app.js", diff --git a/util/request.js b/util/request.js index bcb245a..d449d27 100644 --- a/util/request.js +++ b/util/request.js @@ -85,7 +85,7 @@ const createRequest = (method, url, data, options) => { const header = { osver: cookie.osver, //系统版本 deviceId: cookie.deviceId, //encrypt.base64.encode(imei + '\t02:00:00:00:00:00\t5106025eb79a5247\t70ffbaac7') - appver: cookie.appver || '8.0.0', // app版本 + appver: cookie.appver || '8.7.01', // app版本 versioncode: cookie.versioncode || '140', //版本号 mobilename: cookie.mobilename, //设备model buildver: cookie.buildver || Date.now().toString().substr(0, 10),