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