Compare commits

..

4 Commits

Author SHA1 Message Date
d4ee3b88f8
docs: upd doc 2025-12-20 00:45:53 +08:00
77eb154028
fix(eslint): replace double quotes with single quotes 2025-12-19 21:05:04 +08:00
140ea858c4
Merge pull request #70 from apoint123/fix/phone-login 2025-12-19 20:59:24 +08:00
apoint123
f7f8c54236
fix: 修复验证码登录 2025-12-18 18:21:05 +08:00
6 changed files with 33 additions and 64 deletions

View File

@ -2,6 +2,11 @@
name: Release name: Release
on: on:
push:
branches:
- main
tags:
- 'v*.*.*'
workflow_dispatch: workflow_dispatch:
jobs: jobs:

View File

@ -18,7 +18,7 @@ module.exports = async (query, request) => {
let result = await request( let result = await request(
`/api/w/login/cellphone`, `/api/w/login/cellphone`,
data, data,
createOption(query), createOption(query, 'weapi'),
) )
if (result.body.code === 200) { if (result.body.code === 200) {

View File

@ -1,38 +0,0 @@
// 网易云歌曲解灰
// 支持qq音乐、酷狗音乐、酷我音乐、咪咕音乐、第三方网易云API等等(来自GD音乐台)
const createOption = require('../util/option.js')
const logger = require('../util/logger.js')
module.exports = async (query, request) => {
try {
const match = require('@unblockneteasemusic/server')
const source = query.source
? query.source.split(',')
: ['pyncmd', 'bodian', 'kuwo', 'qq', 'migu', 'kugou']
const server = query.server ? query.server.split(',') : query.server
const result = await match(query.id, !server ? source : server)
const proxy = process.env.PROXY_URL
logger.info('开始解灰', query.id, result)
const useProxy = process.env.ENABLE_PROXY || 'false'
if (result.url.includes('kuwo')) {
result.proxyUrl = useProxy === 'true' ? proxy + result.url : result.url
}
return {
status: 200,
body: {
code: 200,
data: result,
},
}
} catch (e) {
return {
status: 500,
body: {
code: 500,
msg: e.message || 'unblock error',
data: [],
},
}
}
}

View File

@ -1,7 +1,7 @@
{ {
"name": "@neteasecloudmusicapienhanced/api", "name": "@neteasecloudmusicapienhanced/api",
"version": "4.29.17", "version": "4.29.18",
"description": "为停更的网易云音乐 NodeJs API 提供持续的维护!", "description": "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",
"start": "node app.js", "start": "node app.js",
@ -84,7 +84,7 @@
}, },
"devDependencies": { "devDependencies": {
"@eslint/eslintrc": "^3.3.3", "@eslint/eslintrc": "^3.3.3",
"@eslint/js": "^9.39.1", "@eslint/js": "^9.39.2",
"@types/express": "^5.0.6", "@types/express": "^5.0.6",
"@types/express-fileupload": "^1.5.1", "@types/express-fileupload": "^1.5.1",
"@types/mocha": "^10.0.10", "@types/mocha": "^10.0.10",

42
pnpm-lock.yaml generated
View File

@ -58,8 +58,8 @@ importers:
specifier: ^3.3.3 specifier: ^3.3.3
version: 3.3.3 version: 3.3.3
'@eslint/js': '@eslint/js':
specifier: ^9.39.1 specifier: ^9.39.2
version: 9.39.1 version: 9.39.2
'@types/express': '@types/express':
specifier: ^5.0.6 specifier: ^5.0.6
version: 5.0.6 version: 5.0.6
@ -180,8 +180,8 @@ packages:
resolution: {integrity: sha512-BIhe0sW91JGPiaF1mOuPy5v8NflqfjIcDNpC+LbW9f609WVRX1rArrhi6Z2ymvrAry9jw+5POTj4t2t62o8Bmw==} resolution: {integrity: sha512-BIhe0sW91JGPiaF1mOuPy5v8NflqfjIcDNpC+LbW9f609WVRX1rArrhi6Z2ymvrAry9jw+5POTj4t2t62o8Bmw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/js@9.39.1': '@eslint/js@9.39.2':
resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.7': '@eslint/object-schema@2.1.7':
@ -857,8 +857,8 @@ packages:
resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
engines: {node: '>=18'} engines: {node: '>=18'}
es-abstract@1.24.0: es-abstract@1.24.1:
resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
es-define-property@1.0.1: es-define-property@1.0.1:
@ -2088,15 +2088,15 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
hasBin: true hasBin: true
send@1.2.0: send@1.2.1:
resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==}
engines: {node: '>= 18'} engines: {node: '>= 18'}
serialize-javascript@6.0.2: serialize-javascript@6.0.2:
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
serve-static@2.2.0: serve-static@2.2.1:
resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==}
engines: {node: '>= 18'} engines: {node: '>= 18'}
set-blocking@2.0.0: set-blocking@2.0.0:
@ -2615,7 +2615,7 @@ snapshots:
'@eslint/js@9.39.0': {} '@eslint/js@9.39.0': {}
'@eslint/js@9.39.1': {} '@eslint/js@9.39.2': {}
'@eslint/object-schema@2.1.7': {} '@eslint/object-schema@2.1.7': {}
@ -2962,7 +2962,7 @@ snapshots:
array-buffer-byte-length: 1.0.2 array-buffer-byte-length: 1.0.2
call-bind: 1.0.8 call-bind: 1.0.8
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.24.0 es-abstract: 1.24.1
es-errors: 1.3.0 es-errors: 1.3.0
get-intrinsic: 1.3.0 get-intrinsic: 1.3.0
is-array-buffer: 3.0.5 is-array-buffer: 3.0.5
@ -3356,7 +3356,7 @@ snapshots:
environment@1.1.0: {} environment@1.1.0: {}
es-abstract@1.24.0: es-abstract@1.24.1:
dependencies: dependencies:
array-buffer-byte-length: 1.0.2 array-buffer-byte-length: 1.0.2
arraybuffer.prototype.slice: 1.0.4 arraybuffer.prototype.slice: 1.0.4
@ -3695,8 +3695,8 @@ snapshots:
qs: 6.14.0 qs: 6.14.0
range-parser: 1.2.1 range-parser: 1.2.1
router: 2.2.0 router: 2.2.0
send: 1.2.0 send: 1.2.1
serve-static: 2.2.0 serve-static: 2.2.1
statuses: 2.0.2 statuses: 2.0.2
type-is: 2.0.1 type-is: 2.0.1
vary: 1.1.2 vary: 1.1.2
@ -4770,7 +4770,7 @@ snapshots:
dependencies: dependencies:
call-bind: 1.0.8 call-bind: 1.0.8
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.24.0 es-abstract: 1.24.1
es-errors: 1.3.0 es-errors: 1.3.0
es-object-atoms: 1.1.1 es-object-atoms: 1.1.1
get-intrinsic: 1.3.0 get-intrinsic: 1.3.0
@ -4854,7 +4854,7 @@ snapshots:
semver@7.7.3: {} semver@7.7.3: {}
send@1.2.0: send@1.2.1:
dependencies: dependencies:
debug: 4.4.3 debug: 4.4.3
encodeurl: 2.0.0 encodeurl: 2.0.0
@ -4874,12 +4874,12 @@ snapshots:
dependencies: dependencies:
randombytes: 2.1.0 randombytes: 2.1.0
serve-static@2.2.0: serve-static@2.2.1:
dependencies: dependencies:
encodeurl: 2.0.0 encodeurl: 2.0.0
escape-html: 1.0.3 escape-html: 1.0.3
parseurl: 1.3.3 parseurl: 1.3.3
send: 1.2.0 send: 1.2.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -5049,7 +5049,7 @@ snapshots:
call-bound: 1.0.4 call-bound: 1.0.4
define-data-property: 1.1.4 define-data-property: 1.1.4
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.24.0 es-abstract: 1.24.1
es-object-atoms: 1.1.1 es-object-atoms: 1.1.1
has-property-descriptors: 1.0.2 has-property-descriptors: 1.0.2
@ -5220,7 +5220,7 @@ snapshots:
dependencies: dependencies:
call-bind: 1.0.8 call-bind: 1.0.8
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.24.0 es-abstract: 1.24.1
es-errors: 1.3.0 es-errors: 1.3.0
get-proto: 1.0.1 get-proto: 1.0.1
math-intrinsics: 1.1.0 math-intrinsics: 1.1.0

View File

@ -255,7 +255,9 @@ $ sudo docker run -d -p 3000:3000 netease-music-api
!> ~~二开作者再注: 现在二维码登录也无法使用了, 网易云官方最近查的太严了, 现在尝试调用会提示环境异常, 如果各位有绕过的方法请一定开`Pull Request`~~ !> ~~二开作者再注: 现在二维码登录也无法使用了, 网易云官方最近查的太严了, 现在尝试调用会提示环境异常, 如果各位有绕过的方法请一定开`Pull Request`~~
!> 二开作者注: 二维码登录现在是修复了, 但是密码登录和短信登录还是不行, 如果各位有绕过的方法请一定开`Pull Request` !> ~~二开作者注: 二维码登录现在是修复了, 但是密码登录和短信登录还是不行, 如果各位有绕过的方法请一定开`Pull Request`~~
!> 二开作者注: 在`v4.29.18`版本中修复了密码登录和短信登录的问题, 现在可以正常使用了
#### 1. 手机登录 #### 1. 手机登录