feat: 新增新版会员任务接口 (#173)

This commit is contained in:
MoeFurina
2026-05-30 20:02:00 +08:00
parent d0935f6e42
commit d26e6b0615
11 changed files with 52 additions and 1425 deletions
-1418
View File
File diff suppressed because it is too large Load Diff
+14
View File
@@ -0,0 +1,14 @@
// 会员任务 - 新版
const createOption = require('../util/option.js')
module.exports = (query, request) => {
const data = {
taskType: 'app_vip_task_center',
userId: query.id,
}
return request(
`/api/middle/vip/mission/user/progress/list`,
data,
createOption(query, 'xeapi'),
)
}
+5 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@neteasecloudmusicapienhanced/api", "name": "@neteasecloudmusicapienhanced/api",
"version": "4.34.0", "version": "4.34.1",
"description": "全网最全的网易云音乐API接口 || A revival project for NeteaseCloudMusicApi Node.js Services (Half Refactor & Enhanced) || 网易云音乐 API 备份 + 增强 || 本项目自原版v4.28.0版本后开始自行维护", "description": "全网最全的网易云音乐API接口 || A revival project for NeteaseCloudMusicApi Node.js Services (Half Refactor & Enhanced) || 网易云音乐 API 备份 + 增强 || 本项目自原版v4.28.0版本后开始自行维护",
"scripts": { "scripts": {
"dev": "nodemon app.js", "dev": "nodemon app.js",
@@ -104,5 +104,9 @@
"power-assert": "^1.6.1", "power-assert": "^1.6.1",
"prettier": "^3.8.3", "prettier": "^3.8.3",
"typescript": "^5.9.3" "typescript": "^5.9.3"
},
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
} }
} }
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

+26 -2
View File
@@ -2,8 +2,6 @@
网易云音乐 NodeJS API Enhanced 网易云音乐 NodeJS API Enhanced
最后更新于: 2026.2.15
## 灵感来自 ## 灵感来自
[disoul/electron-cloud-music](https://github.com/disoul/electron-cloud-music) [disoul/electron-cloud-music](https://github.com/disoul/electron-cloud-music)
@@ -220,6 +218,10 @@ $ sudo docker run -d -p 3000:3000 netease-music-api
### 调用前须知 ### 调用前须知
AI 生成的图,仅供娱乐()
![ai generated](./aigen.png)
!> 本项目不提供线上 demo, 只提供在线文档服务, 请不要轻易信任使用他人提供的公开服务,以免发生安全问题,泄露自己的账号和密码 !> 本项目不提供线上 demo, 只提供在线文档服务, 请不要轻易信任使用他人提供的公开服务,以免发生安全问题,泄露自己的账号和密码
!> 为使用方便,降低门槛, 文档示例接口直接使用了 GET 请求,本项目同时支持 GET/POST 请按实际需求使用 (POST 请求 url 必须添加时间戳,使每次请求 url 不一样,不然请求会被缓存) !> 为使用方便,降低门槛, 文档示例接口直接使用了 GET 请求,本项目同时支持 GET/POST 请按实际需求使用 (POST 请求 url 必须添加时间戳,使每次请求 url 不一样,不然请求会被缓存)
@@ -5336,6 +5338,28 @@ let data = encodeURIComponent(
说明 : 调用此接口,可获取城市榜、城市风格榜等指定维度音乐排行榜歌曲列表 说明 : 调用此接口,可获取城市榜、城市风格榜等指定维度音乐排行榜歌曲列表
**必选参数 :**
`chartCode`: 榜单编码,如 `CITY_SONG_CHART`、`CITY_STYLE_SONG_CHART`
`targetId`: 目标 id,城市榜如 `110000`,城市风格榜如 北京华语流行榜 `110000_1020`。城市风格榜格式通常为 `城市 id_曲风 id`,其中曲风 id 可通过[曲风列表](#曲风列表)接口 `/style/list` 获取。城市榜的城市列表可通过[多级行政区划数据](#多级行政区划数据)接口传入 `bizCode=chart` 获取;城市风格榜的城市列表可通过该接口传空 `bizCode` 获取
`targetType`: 目标类型,如 `CITY`、`CITY_STYLE`
**接口地址 :** `/chart/song/detail`
**调用例子 :** `/chart/song/detail?chartCode=CITY_STYLE_SONG_CHART&targetId=110000_1020&targetType=CITY_STYLE`
### 会员任务 - 新版
说明 : 登录后调用此接口, 获取会员任务
**可选参数** `id`: 用户 id, 传入后可获取指定用户的会员任务, 不传入则获取当前登录用户的会员任务
**接口地址 :** `/vip/task/v1`
**调用例子 :** `/vip/task/v1` `/vip/task/v1?id=32953014`
## 离线访问此文档 ## 离线访问此文档
此文档同时也是 Progressive Web Apps(PWA), 加入了 serviceWorker, 可离线访问 此文档同时也是 Progressive Web Apps(PWA), 加入了 serviceWorker, 可离线访问
Binary file not shown.

Before

Width:  |  Height:  |  Size: 858 KiB

+1 -1
View File
@@ -108,7 +108,7 @@
name: '网易云音乐 API Enhanced', name: '网易云音乐 API Enhanced',
repo: 'https://github.com/neteasecloudmusicapienhanced/api-enhanced', repo: 'https://github.com/neteasecloudmusicapienhanced/api-enhanced',
coverpage: true, coverpage: true,
homepage: 'https://cdn.jsdelivr.net/gh/NeteaseCloudMusicApiEnhanced/api-enhanced@main/public/docs/home.md', homepage: 'home.md',
} }
</script> </script>
<script src="https://unpkg.com/docsify@4.11.3/lib/docsify.min.js"></script> <script src="https://unpkg.com/docsify@4.11.3/lib/docsify.min.js"></script>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 992 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

+4 -1
View File
@@ -5,7 +5,10 @@ const createOption = (query, crypto = '') => {
ua: query.ua || '', ua: query.ua || '',
proxy: query.proxy, proxy: query.proxy,
realIP: query.realIP, realIP: query.realIP,
randomCNIP: process.env.ENABLE_RANDOM_CN_IP === 'true' ? !['false', false].includes(query.randomCNIP) : ['true', true].includes(query.randomCNIP), randomCNIP:
process.env.ENABLE_RANDOM_CN_IP === 'true'
? !['false', false].includes(query.randomCNIP)
: ['true', true].includes(query.randomCNIP),
e_r: query.e_r || undefined, e_r: query.e_r || undefined,
domain: query.domain || '', domain: query.domain || '',
checkToken: query.checkToken || false, checkToken: query.checkToken || false,