Skip to content
This repository was archived by the owner on Apr 16, 2024. It is now read-only.

Commit 0660928

Browse files
committed
修复 URI malformed 错误 #1347 #1287 #1110
1 parent d608f10 commit 0660928

File tree

4 files changed

+28
-5757
lines changed

4 files changed

+28
-5757
lines changed

CHANGELOG.MD

+3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
# 更新日志
2+
### 4.0.22 | 2021.9.08
3+
- 修复 URI malformed 错误 [#1347](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/1347)
4+
25
### 4.0.21 | 2021.9.04
36
- 修复云盘上传失败问题 #1332
47

app.js

+8-5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ const exec = require('child_process').exec
88
const cache = require('./util/apicache').middleware
99
const { cookieToJson } = require('./util/index')
1010
const fileUpload = require('express-fileupload')
11+
const decode = require('safe-decode-uri-component')
12+
1113
// version check
1214
exec('npm info NeteaseCloudMusicApi version', (err, stdout, stderr) => {
1315
if (!err) {
@@ -44,8 +46,9 @@ app.use((req, res, next) => {
4446
;(req.headers.cookie || '').split(/;\s+|(?<!\s)\s+$/g).forEach((pair) => {
4547
let crack = pair.indexOf('=')
4648
if (crack < 1 || crack == pair.length - 1) return
47-
req.cookies[decodeURIComponent(pair.slice(0, crack)).trim()] =
48-
decodeURIComponent(pair.slice(crack + 1)).trim()
49+
req.cookies[decode(pair.slice(0, crack)).trim()] = decode(
50+
pair.slice(crack + 1),
51+
).trim()
4952
})
5053
next()
5154
})
@@ -81,7 +84,7 @@ fs.readdirSync(path.join(__dirname, 'module'))
8184
app.use(route, (req, res) => {
8285
;[req.query, req.body].forEach((item) => {
8386
if (typeof item.cookie === 'string') {
84-
item.cookie = cookieToJson(decodeURIComponent(item.cookie))
87+
item.cookie = cookieToJson(decode(item.cookie))
8588
}
8689
})
8790
let query = Object.assign(
@@ -94,7 +97,7 @@ fs.readdirSync(path.join(__dirname, 'module'))
9497

9598
question(query, request)
9699
.then((answer) => {
97-
console.log('[OK]', decodeURIComponent(req.originalUrl))
100+
console.log('[OK]', decode(req.originalUrl))
98101

99102
const cookies = answer.cookie
100103
if (Array.isArray(cookies) && cookies.length > 0) {
@@ -113,7 +116,7 @@ fs.readdirSync(path.join(__dirname, 'module'))
113116
res.status(answer.status).send(answer.body)
114117
})
115118
.catch((answer) => {
116-
console.log('[ERR]', decodeURIComponent(req.originalUrl), {
119+
console.log('[ERR]', decode(req.originalUrl), {
117120
status: answer.status,
118121
body: answer.body,
119122
})

0 commit comments

Comments
 (0)