fix: proxy duplicate issue

This commit is contained in:
Peng-YM 2022-08-04 20:40:40 +08:00
parent f64e8ecfe4
commit 26820ea892
6 changed files with 25 additions and 18 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{ {
"name": "sub-store", "name": "sub-store",
"version": "2.12.1", "version": "2.12.2",
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.",
"main": "src/main.js", "main": "src/main.js",
"scripts": { "scripts": {

View File

@ -50,6 +50,7 @@ function parse(raw) {
lastParser = parser; lastParser = parser;
success = true; success = true;
$.info(`${parser.name} is activated`); $.info(`${parser.name} is activated`);
break;
} }
} }
} }

View File

@ -112,8 +112,11 @@ function URI_SSR() {
line = line.split('/?')[1].split('&'); line = line.split('/?')[1].split('&');
if (line.length > 1) { if (line.length > 1) {
for (const item of line) { for (const item of line) {
const [key, val] = item.split('='); let [key, val] = item.split('=');
other_params[key] = val.trim(); val = val.trim();
if (val.length > 0) {
other_params[key] = val;
}
} }
} }
proxy = { proxy = {
@ -242,14 +245,17 @@ function URI_Trojan() {
const name = decodeURIComponent(line.split('#')[1].trim()); const name = decodeURIComponent(line.split('#')[1].trim());
let paramArr = line.split('?'); let paramArr = line.split('?');
let scert = null; let scert = null;
let params; const params = new Map();
if (paramArr.length > 1) { if (paramArr.length > 1) {
paramArr = paramArr[1].split('#')[0].split('&'); paramArr = paramArr[1].split('#')[0].split('&');
params = new Map( for (const pair of paramArr) {
paramArr.map((item) => { let [key, val] = pair.split('=');
return item.split('='); // skip empty values
}), val = val.trim();
); if (val.length > 0) {
params.set(key, val);
}
}
if ( if (
params.get('allowInsecure') === '1' || params.get('allowInsecure') === '1' ||
params.get('allowInsecure') === 'true' params.get('allowInsecure') === 'true'

File diff suppressed because one or more lines are too long