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

This commit is contained in:
ElyPrism 2026-05-30 20:02:00 +08:00
parent d0935f6e42
commit d26e6b0615
No known key found for this signature in database
11 changed files with 52 additions and 1425 deletions

File diff suppressed because it is too large Load Diff

14
module/vip_tasks_v1.js Normal file
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'),
)
}

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/"
} }
} }

BIN
public/docs/aigen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

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

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

BIN
public/static/2170.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

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,