Skip to content

Commit 4276869

Browse files
committed
refactor: 非 Node 环境的 req query params decode
1 parent c902ad8 commit 4276869

10 files changed

Lines changed: 3 additions & 48 deletions

File tree

backend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sub-store",
3-
"version": "2.19.94",
3+
"version": "2.19.95",
44
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.",
55
"main": "src/main.js",
66
"scripts": {

backend/src/restful/artifacts.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ function replaceArtifact(req, res) {
112112

113113
async function getArtifact(req, res) {
114114
let { name } = req.params;
115-
name = decodeURIComponent(name);
116115
const allArtifacts = $.read(ARTIFACTS_KEY);
117116
const artifact = findByName(allArtifacts, name);
118117

@@ -163,7 +162,6 @@ function createArtifact(req, res) {
163162
function updateArtifact(req, res) {
164163
const allArtifacts = $.read(ARTIFACTS_KEY);
165164
let oldName = req.params.name;
166-
oldName = decodeURIComponent(oldName);
167165
const artifact = findByName(allArtifacts, oldName);
168166
if (artifact) {
169167
$.info(`正在更新远程配置:${artifact.name}`);
@@ -197,7 +195,6 @@ function updateArtifact(req, res) {
197195

198196
async function deleteArtifact(req, res) {
199197
let { name } = req.params;
200-
name = decodeURIComponent(name);
201198
$.info(`正在删除远程配置:${name}`);
202199
const allArtifacts = $.read(ARTIFACTS_KEY);
203200
try {

backend/src/restful/collections.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ function createCollection(req, res) {
5252
function getCollection(req, res) {
5353
let { name } = req.params;
5454
let { raw } = req.query;
55-
name = decodeURIComponent(name);
5655
const allCols = $.read(COLLECTIONS_KEY);
5756
const collection = findByName(allCols, name);
5857
if (collection) {
@@ -84,7 +83,6 @@ function getCollection(req, res) {
8483

8584
function updateCollection(req, res) {
8685
let { name } = req.params;
87-
name = decodeURIComponent(name);
8886
let collection = req.body;
8987
const allCols = $.read(COLLECTIONS_KEY);
9088
const oldCol = findByName(allCols, name);
@@ -137,7 +135,6 @@ function updateCollection(req, res) {
137135

138136
function deleteCollection(req, res) {
139137
let { name } = req.params;
140-
name = decodeURIComponent(name);
141138
$.info(`正在删除组合订阅:${name}`);
142139
let allCols = $.read(COLLECTIONS_KEY);
143140
deleteByName(allCols, name);

backend/src/restful/download.js

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,6 @@ export default function register($app) {
8888

8989
async function downloadSubscription(req, res) {
9090
let { name, nezhaIndex } = req.params;
91-
name = decodeURIComponent(name);
92-
nezhaIndex = decodeURIComponent(nezhaIndex);
9391

9492
const useMihomoExternal = req.query.target === 'SurgeMac';
9593

@@ -140,40 +138,32 @@ async function downloadSubscription(req, res) {
140138
$.info(`传入 $options: ${JSON.stringify($options)}`);
141139
}
142140
if (url) {
143-
url = decodeURIComponent(url);
144141
$.info(`指定远程订阅 URL: ${url}`);
145142
if (!/^https?:\/\//.test(url)) {
146143
content = url;
147144
$.info(`URL 不是链接,视为本地订阅`);
148145
}
149146
}
150147
if (content) {
151-
content = decodeURIComponent(content);
152148
$.info(`指定本地订阅: ${content}`);
153149
}
154150
if (proxy) {
155-
proxy = decodeURIComponent(proxy);
156151
$.info(`指定远程订阅使用代理/策略 proxy: ${proxy}`);
157152
}
158153
if (ua) {
159-
ua = decodeURIComponent(ua);
160154
$.info(`指定远程订阅 User-Agent: ${ua}`);
161155
}
162156

163157
if (mergeSources) {
164-
mergeSources = decodeURIComponent(mergeSources);
165158
$.info(`指定合并来源: ${mergeSources}`);
166159
}
167160
if (ignoreFailedRemoteSub != null && ignoreFailedRemoteSub !== '') {
168-
ignoreFailedRemoteSub = decodeURIComponent(ignoreFailedRemoteSub);
169161
$.info(`指定忽略失败的远程订阅: ${ignoreFailedRemoteSub}`);
170162
}
171163
if (produceType) {
172-
produceType = decodeURIComponent(produceType);
173164
$.info(`指定生产类型: ${produceType}`);
174165
}
175166
if (includeUnsupportedProxy) {
176-
includeUnsupportedProxy = decodeURIComponent(includeUnsupportedProxy);
177167
$.info(
178168
`包含官方/商店版/未续费订阅不支持的协议: ${includeUnsupportedProxy}`,
179169
);
@@ -362,8 +352,6 @@ async function downloadSubscription(req, res) {
362352

363353
async function downloadCollection(req, res) {
364354
let { name, nezhaIndex } = req.params;
365-
name = decodeURIComponent(name);
366-
nezhaIndex = decodeURIComponent(nezhaIndex);
367355

368356
const useMihomoExternal = req.query.target === 'SurgeMac';
369357

@@ -416,21 +404,17 @@ async function downloadCollection(req, res) {
416404
}
417405

418406
if (proxy) {
419-
proxy = decodeURIComponent(proxy);
420407
$.info(`指定远程订阅使用代理/策略 proxy: ${proxy}`);
421408
}
422409

423410
if (ignoreFailedRemoteSub != null && ignoreFailedRemoteSub !== '') {
424-
ignoreFailedRemoteSub = decodeURIComponent(ignoreFailedRemoteSub);
425411
$.info(`指定忽略失败的远程订阅: ${ignoreFailedRemoteSub}`);
426412
}
427413
if (produceType) {
428-
produceType = decodeURIComponent(produceType);
429414
$.info(`指定生产类型: ${produceType}`);
430415
}
431416

432417
if (includeUnsupportedProxy) {
433-
includeUnsupportedProxy = decodeURIComponent(includeUnsupportedProxy);
434418
$.info(
435419
`包含官方/商店版/未续费订阅不支持的协议: ${includeUnsupportedProxy}`,
436420
);

backend/src/restful/file.js

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ function createFile(req, res) {
5151

5252
async function getFile(req, res) {
5353
let { name } = req.params;
54-
name = decodeURIComponent(name);
5554
const reqUA = req.headers['user-agent'] || req.headers['User-Agent'];
5655
$.info(`正在下载文件:${name}\n请求 User-Agent: ${reqUA}`);
5756
let {
@@ -95,42 +94,33 @@ async function getFile(req, res) {
9594
$.info(`传入 $options: ${JSON.stringify($options)}`);
9695
}
9796
if (url) {
98-
url = decodeURIComponent(url);
9997
$.info(`指定远程文件 URL: ${url}`);
10098
}
10199
if (proxy) {
102-
proxy = decodeURIComponent(proxy);
103100
$.info(`指定远程订阅使用代理/策略 proxy: ${proxy}`);
104101
}
105102
if (ua) {
106-
ua = decodeURIComponent(ua);
107103
$.info(`指定远程文件 User-Agent: ${ua}`);
108104
}
109105
if (subInfoUrl) {
110-
subInfoUrl = decodeURIComponent(subInfoUrl);
111106
$.info(`指定获取流量的 subInfoUrl: ${subInfoUrl}`);
112107
}
113108
if (subInfoUserAgent) {
114-
subInfoUserAgent = decodeURIComponent(subInfoUserAgent);
115109
$.info(`指定获取流量的 subInfoUserAgent: ${subInfoUserAgent}`);
116110
}
117111
if (content) {
118-
content = decodeURIComponent(content);
119112
$.info(`指定本地文件: ${content}`);
120113
}
121114
if (mergeSources) {
122-
mergeSources = decodeURIComponent(mergeSources);
123115
$.info(`指定合并来源: ${mergeSources}`);
124116
}
125117
if (ignoreFailedRemoteFile != null && ignoreFailedRemoteFile !== '') {
126-
ignoreFailedRemoteFile = decodeURIComponent(ignoreFailedRemoteFile);
127118
$.info(`指定忽略失败的远程文件: ${ignoreFailedRemoteFile}`);
128119
}
129120
if (noCache) {
130121
$.info(`指定不使用缓存: ${noCache}`);
131122
}
132123
if (produceType) {
133-
produceType = decodeURIComponent(produceType);
134124
$.info(`指定生产类型: ${produceType}`);
135125
}
136126

@@ -225,7 +215,6 @@ async function getFile(req, res) {
225215
function getWholeFile(req, res) {
226216
let { name } = req.params;
227217
let { raw } = req.query;
228-
name = decodeURIComponent(name);
229218
const allFiles = $.read(FILES_KEY);
230219
const file = findByName(allFiles, name);
231220
if (file) {
@@ -257,7 +246,6 @@ function getWholeFile(req, res) {
257246

258247
function updateFile(req, res) {
259248
let { name } = req.params;
260-
name = decodeURIComponent(name);
261249
let file = req.body;
262250
const allFiles = $.read(FILES_KEY);
263251
const oldFile = findByName(allFiles, name);
@@ -299,7 +287,6 @@ function updateFile(req, res) {
299287

300288
function deleteFile(req, res) {
301289
let { name } = req.params;
302-
name = decodeURIComponent(name);
303290
$.info(`正在删除文件:${name}`);
304291
let allFiles = $.read(FILES_KEY);
305292
deleteByName(allFiles, name);

backend/src/restful/module.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ function createModule(req, res) {
4343

4444
function getModule(req, res) {
4545
let { name } = req.params;
46-
name = decodeURIComponent(name);
4746
const allModules = $.read(MODULES_KEY);
4847
const module = findByName(allModules, name);
4948
if (module) {
@@ -64,7 +63,6 @@ function getModule(req, res) {
6463

6564
function updateModule(req, res) {
6665
let { name } = req.params;
67-
name = decodeURIComponent(name);
6866
let module = req.body;
6967
const allModules = $.read(MODULES_KEY);
7068
const oldModule = findByName(allModules, name);
@@ -92,7 +90,6 @@ function updateModule(req, res) {
9290

9391
function deleteModule(req, res) {
9492
let { name } = req.params;
95-
name = decodeURIComponent(name);
9693
$.info(`正在删除模块:${name}`);
9794
let allModules = $.read(MODULES_KEY);
9895
deleteByName(allModules, name);

backend/src/restful/subscriptions.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,8 @@ export default function register($app) {
3939
// subscriptions API
4040
async function getFlowInfo(req, res) {
4141
let { name } = req.params;
42-
name = decodeURIComponent(name);
4342
let { url } = req.query;
4443
if (url) {
45-
url = decodeURIComponent(url);
4644
$.info(`指定远程订阅 URL: ${url}`);
4745
}
4846
const allSubs = $.read(SUBS_KEY);
@@ -262,7 +260,6 @@ function createSubscription(req, res) {
262260
function getSubscription(req, res) {
263261
let { name } = req.params;
264262
let { raw } = req.query;
265-
name = decodeURIComponent(name);
266263
const allSubs = $.read(SUBS_KEY);
267264
const sub = findByName(allSubs, name);
268265
if (sub) {
@@ -294,7 +291,6 @@ function getSubscription(req, res) {
294291

295292
function updateSubscription(req, res) {
296293
let { name } = req.params;
297-
name = decodeURIComponent(name); // the original name
298294
let sub = req.body;
299295
const allSubs = $.read(SUBS_KEY);
300296
const oldSub = findByName(allSubs, name);
@@ -357,7 +353,6 @@ function updateSubscription(req, res) {
357353

358354
function deleteSubscription(req, res) {
359355
let { name } = req.params;
360-
name = decodeURIComponent(name);
361356
$.info(`删除订阅:${name}...`);
362357
// delete from subscriptions
363358
let allSubs = $.read(SUBS_KEY);

backend/src/restful/sync.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -792,7 +792,6 @@ async function syncAllArtifacts(_, res) {
792792

793793
async function syncArtifact(req, res) {
794794
let { name } = req.params;
795-
name = decodeURIComponent(name);
796795
$.info(`开始同步远程配置 ${name}...`);
797796
const allArtifacts = $.read(ARTIFACTS_KEY);
798797
const artifact = findByName(allArtifacts, name);

backend/src/restful/token.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ export default function register($app) {
1717

1818
function deleteToken(req, res) {
1919
let { token } = req.params;
20-
token = decodeURIComponent(token);
2120
$.info(`正在删除:${token}`);
2221
let allTokens = $.read(TOKENS_KEY);
2322
deleteByName(allTokens, token, 'token');

backend/src/vendor/express.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ function extractURL(url) {
270270
let hashes = url.slice(url.indexOf('?') + 1).split('&');
271271
for (let i = 0; i < hashes.length; i++) {
272272
const hash = hashes[i].split('=');
273-
query[hash[0]] = hash[1];
273+
query[hash[0]] = decodeURIComponent(hash[1]);
274274
}
275275
}
276276
return {
@@ -294,7 +294,7 @@ function extractPathParams(pattern, path) {
294294
while (path[j] !== '/' && j < path.length) {
295295
val.push(path[j++]);
296296
}
297-
params[key.join('')] = val.join('');
297+
params[key.join('')] = decodeURIComponent(val.join(''));
298298
} else {
299299
if (pattern[i] !== path[j]) {
300300
return null;

0 commit comments

Comments
 (0)