@@ -8,6 +8,8 @@ const exec = require('child_process').exec
8
8
const cache = require ( './util/apicache' ) . middleware
9
9
const { cookieToJson } = require ( './util/index' )
10
10
const fileUpload = require ( 'express-fileupload' )
11
+ const decode = require ( 'safe-decode-uri-component' )
12
+
11
13
// version check
12
14
exec ( 'npm info NeteaseCloudMusicApi version' , ( err , stdout , stderr ) => {
13
15
if ( ! err ) {
@@ -44,8 +46,9 @@ app.use((req, res, next) => {
44
46
; ( req . headers . cookie || '' ) . split ( / ; \s + | (?< ! \s ) \s + $ / g) . forEach ( ( pair ) => {
45
47
let crack = pair . indexOf ( '=' )
46
48
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 ( )
49
52
} )
50
53
next ( )
51
54
} )
@@ -81,7 +84,7 @@ fs.readdirSync(path.join(__dirname, 'module'))
81
84
app . use ( route , ( req , res ) => {
82
85
; [ req . query , req . body ] . forEach ( ( item ) => {
83
86
if ( typeof item . cookie === 'string' ) {
84
- item . cookie = cookieToJson ( decodeURIComponent ( item . cookie ) )
87
+ item . cookie = cookieToJson ( decode ( item . cookie ) )
85
88
}
86
89
} )
87
90
let query = Object . assign (
@@ -94,7 +97,7 @@ fs.readdirSync(path.join(__dirname, 'module'))
94
97
95
98
question ( query , request )
96
99
. then ( ( answer ) => {
97
- console . log ( '[OK]' , decodeURIComponent ( req . originalUrl ) )
100
+ console . log ( '[OK]' , decode ( req . originalUrl ) )
98
101
99
102
const cookies = answer . cookie
100
103
if ( Array . isArray ( cookies ) && cookies . length > 0 ) {
@@ -113,7 +116,7 @@ fs.readdirSync(path.join(__dirname, 'module'))
113
116
res . status ( answer . status ) . send ( answer . body )
114
117
} )
115
118
. catch ( ( answer ) => {
116
- console . log ( '[ERR]' , decodeURIComponent ( req . originalUrl ) , {
119
+ console . log ( '[ERR]' , decode ( req . originalUrl ) , {
117
120
status : answer . status ,
118
121
body : answer . body ,
119
122
} )
0 commit comments