feat(module): add user playlist collect

Co-Authored-By: binaryify <binaryify@gmail.com>
This commit is contained in:
ElyPrism 2026-02-11 16:25:30 +08:00
parent 805d0bccc5
commit d10296ccd8
No known key found for this signature in database
6 changed files with 75 additions and 7 deletions

View File

@ -497,6 +497,8 @@ banner({ type: 0 }).then((res) => {
312. 广播电台 - 电台信息 312. 广播电台 - 电台信息
313. 广播电台 - 全部电台 313. 广播电台 - 全部电台
314. 广播电台 - 收藏/取消收藏电台 314. 广播电台 - 收藏/取消收藏电台
315. 用户的创建歌单列表
316. 用户的收藏歌单列表
## 单元测试 ## 单元测试

View File

@ -0,0 +1,14 @@
// 获取用户的收藏歌单列表
const createOption = require('../util/option.js')
module.exports = (query, request) => {
const data = {
limit: query.limit || '100',
offset: query.offset || '0',
userId: query.uid,
isWebview: 'true',
includeRedHeart: 'true',
includeTop: 'true',
}
return request(`/api/user/playlist/collect`, data, createOption(query))
}

View File

@ -0,0 +1,14 @@
// 获取用户的创建歌单列表
const createOption = require('../util/option.js')
module.exports = (query, request) => {
const data = {
limit: query.limit || '100',
offset: query.offset || '0',
userId: query.uid,
isWebview: 'true',
includeRedHeart: 'true',
includeTop: 'true',
}
return request(`/api/user/playlist/create`, data, createOption(query))
}

View File

@ -1,6 +1,6 @@
{ {
"name": "NeteaseCloudMusicApi", "name": "NeteaseCloudMusicApi",
"version": "4.28.1", "version": "4.29.0",
"description": "网易云音乐 NodeJS 版 API", "description": "网易云音乐 NodeJS 版 API",
"scripts": { "scripts": {
"start": "node app.js", "start": "node app.js",

View File

@ -330,6 +330,8 @@
312. 广播电台 - 电台信息 312. 广播电台 - 电台信息
313. 广播电台 - 全部电台 313. 广播电台 - 全部电台
314. 广播电台 - 收藏/取消收藏电台 314. 广播电台 - 收藏/取消收藏电台
315. 用户的创建歌单列表
316. 用户的收藏歌单列表
## 安装 ## 安装
@ -5137,6 +5139,42 @@ let data = encodeURIComponent(
**调用例子:** `/broadcast/channel/list` **调用例子:** `/broadcast/channel/list`
### 用户的创建歌单列表
说明 : 调用此接口, 传入用户id, 获取用户的创建歌单列表
**必选参数 :**
`uid`: 用户 id
**可选参数 :**
`limit` : 返回数量 , 默认为 100
`offset` : 偏移数量,用于分页 ,如 :( 页数 -1)\*30, 其中 30 为 limit 的值 , 默认为 0
**接口地址 :** `/user/playlist/create`
**调用例子 :** `/user/playlist/create?uid=32953014`
### 用户的收藏歌单列表
说明 : 调用此接口, 传入用户id, 获取用户的收藏歌单列表
**必选参数 :**
`uid`: 用户 id
**可选参数 :**
`limit` : 返回数量 , 默认为 100
`offset` : 偏移数量,用于分页 ,如 :( 页数 -1)\*30, 其中 30 为 limit 的值 , 默认为 0
**接口地址 :** `/user/playlist/collect`
**调用例子 :** `/user/playlist/collect?uid=32953014`
## 离线访问此文档 ## 离线访问此文档
此文档同时也是 Progressive Web Apps(PWA), 加入了 serviceWorker, 可离线访问 此文档同时也是 Progressive Web Apps(PWA), 加入了 serviceWorker, 可离线访问

View File

@ -191,11 +191,11 @@ const createRequest = (uri, data, options) => {
// 根据加密方式处理 // 根据加密方式处理
switch (crypto) { switch (crypto) {
case 'weapi': case 'weapi':
headers['Referer'] = DOMAIN headers['Referer'] = options.domain || DOMAIN
headers['User-Agent'] = options.ua || chooseUserAgent('weapi') headers['User-Agent'] = options.ua || chooseUserAgent('weapi')
data.csrf_token = csrfToken data.csrf_token = csrfToken
encryptData = encrypt.weapi(data) encryptData = encrypt.weapi(data)
url = DOMAIN + '/weapi/' + uri.substr(5) url = (options.domain || DOMAIN) + '/weapi/' + uri.substr(5)
break break
case 'linuxapi': case 'linuxapi':
@ -203,10 +203,10 @@ const createRequest = (uri, data, options) => {
options.ua || chooseUserAgent('linuxapi', 'linux') options.ua || chooseUserAgent('linuxapi', 'linux')
encryptData = encrypt.linuxapi({ encryptData = encrypt.linuxapi({
method: 'POST', method: 'POST',
url: DOMAIN + uri, url: (options.domain || DOMAIN) + uri,
params: data, params: data,
}) })
url = DOMAIN + '/api/linux/forward' url = (options.domain || DOMAIN) + '/api/linux/forward'
break break
case 'eapi': case 'eapi':
@ -246,9 +246,9 @@ const createRequest = (uri, data, options) => {
: ENCRYPT_RESPONSE, : ENCRYPT_RESPONSE,
) )
encryptData = encrypt.eapi(uri, data) encryptData = encrypt.eapi(uri, data)
url = API_DOMAIN + '/eapi/' + uri.substr(5) url = (options.domain || API_DOMAIN) + '/eapi/' + uri.substr(5)
} else if (crypto === 'api') { } else if (crypto === 'api') {
url = API_DOMAIN + uri url = (options.domain || API_DOMAIN) + uri
encryptData = data encryptData = data
} }
break break