提交 0660928d 编写于 作者: B binaryify

修复 URI malformed 错误 #1347 #1287 #1110

上级 d608f100
# 更新日志
### 4.0.22 | 2021.9.08
- 修复 URI malformed 错误 [#1347](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/1347)
### 4.0.21 | 2021.9.04
- 修复云盘上传失败问题 #1332
......
......@@ -8,6 +8,8 @@ const exec = require('child_process').exec
const cache = require('./util/apicache').middleware
const { cookieToJson } = require('./util/index')
const fileUpload = require('express-fileupload')
const decode = require('safe-decode-uri-component')
// version check
exec('npm info NeteaseCloudMusicApi version', (err, stdout, stderr) => {
if (!err) {
......@@ -44,8 +46,9 @@ app.use((req, res, next) => {
;(req.headers.cookie || '').split(/;\s+|(?<!\s)\s+$/g).forEach((pair) => {
let crack = pair.indexOf('=')
if (crack < 1 || crack == pair.length - 1) return
req.cookies[decodeURIComponent(pair.slice(0, crack)).trim()] =
decodeURIComponent(pair.slice(crack + 1)).trim()
req.cookies[decode(pair.slice(0, crack)).trim()] = decode(
pair.slice(crack + 1),
).trim()
})
next()
})
......@@ -81,7 +84,7 @@ fs.readdirSync(path.join(__dirname, 'module'))
app.use(route, (req, res) => {
;[req.query, req.body].forEach((item) => {
if (typeof item.cookie === 'string') {
item.cookie = cookieToJson(decodeURIComponent(item.cookie))
item.cookie = cookieToJson(decode(item.cookie))
}
})
let query = Object.assign(
......@@ -94,7 +97,7 @@ fs.readdirSync(path.join(__dirname, 'module'))
question(query, request)
.then((answer) => {
console.log('[OK]', decodeURIComponent(req.originalUrl))
console.log('[OK]', decode(req.originalUrl))
const cookies = answer.cookie
if (Array.isArray(cookies) && cookies.length > 0) {
......@@ -113,7 +116,7 @@ fs.readdirSync(path.join(__dirname, 'module'))
res.status(answer.status).send(answer.body)
})
.catch((answer) => {
console.log('[ERR]', decodeURIComponent(req.originalUrl), {
console.log('[ERR]', decode(req.originalUrl), {
status: answer.status,
body: answer.body,
})
......
此差异已折叠。
{
"name": "NeteaseCloudMusicApi",
"version": "4.0.21",
"version": "4.0.22",
"description": "网易云音乐 NodeJS 版 API",
"scripts": {
"start": "node app.js",
......@@ -51,6 +51,7 @@
"music-metadata": "^7.5.3",
"pac-proxy-agent": "^5.0.0",
"qrcode": "^1.4.4",
"safe-decode-uri-component": "^1.2.1",
"tunnel": "^0.0.6"
},
"devDependencies": {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册