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

This commit is contained in:
binaryify
2021-09-08 14:12:49 +08:00
parent d608f100d1
commit 0660928dc5
4 changed files with 28 additions and 5757 deletions

13
app.js
View File

@ -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,
})