Fixed some default parameter errors

This commit is contained in:
Peng-YM 2020-10-20 17:19:54 +08:00
parent fe5dcd2a1b
commit 0d1e0588c5
2 changed files with 81 additions and 61 deletions

View File

@ -1646,12 +1646,17 @@ function QX_Producer() {
case "ss": case "ss":
obfs_opts = ""; obfs_opts = "";
if (proxy.plugin === "obfs") { if (proxy.plugin === "obfs") {
obfs_opts = `,obfs=${proxy["plugin-opts"].mode},obfs-host=${proxy["plugin-opts"].host}`; const {host, mode} = proxy['plugin-opts'];
obfs_opts = `, obfs=${mode}${
host ? ", obfs-host=" + host : ""
}`;
} }
if (proxy.plugin === "v2ray-plugin") { if (proxy.plugin === "v2ray-plugin") {
const {tls, host, path} = proxy["plugin-opts"]; const {tls, host, path} = proxy["plugin-opts"];
obfs_opts = `,obfs=${tls ? "wss" : "ws"},obfs-host=${host}${ obfs_opts = `, obfs=${tls ? "wss" : "ws"}${
path ? ",obfs-uri=" + path : "" host ? ", obfs-host=" + host : ""
}${
path ? ", obfs-uri=" + path : ""
}`; }`;
} }
return `shadowsocks=${proxy.server}:${proxy.port}, method=${ return `shadowsocks=${proxy.server}:${proxy.port}, method=${
@ -1664,14 +1669,14 @@ function QX_Producer() {
case "ssr": case "ssr":
return `shadowsocks=${proxy.server}:${proxy.port},method=${ return `shadowsocks=${proxy.server}:${proxy.port},method=${
proxy.cipher proxy.cipher
},password=${proxy.password},ssr-protocol=${proxy.protocol}${ }, password=${proxy.password}, ssr-protocol=${proxy.protocol}${
proxy["protocol-param"] proxy["protocol-param"]
? ",ssr-protocol-param=" + proxy["protocol-param"] ? ", ssr-protocol-param=" + proxy["protocol-param"]
: "" : ""
}${proxy.obfs ? ",obfs=" + proxy.obfs : ""}${ }${proxy.obfs ? ",obfs=" + proxy.obfs : ""}${
proxy["obfs-param"] ? ",obfs-host=" + proxy["obfs-param"] : "" proxy["obfs-param"] ? ",obfs-host=" + proxy["obfs-param"] : ""
}${proxy.tfo ? ",fast-open=true" : ",fast-open=false"}${ }${proxy.tfo ? ", fast-open=true" : ", fast-open=false"}${
proxy.udp ? ",udp-relay=true" : ",udp-relay=false" proxy.udp ? ", udp-relay=true" : ", udp-relay=false"
},tag=${proxy.name}`; },tag=${proxy.name}`;
case "vmess": case "vmess":
obfs_opts = ""; obfs_opts = "";
@ -1679,50 +1684,56 @@ function QX_Producer() {
// websocket // websocket
if (proxy.tls) { if (proxy.tls) {
// ws-tls // ws-tls
obfs_opts = `,obfs=wss,obfs-host=${proxy.sni}${ obfs_opts = `, obfs=wss${
proxy["ws-path"] ? ",obfs-uri=" + proxy["ws-path"] : "" proxy.sni ? ", obfs-host=" + proxy.sni : ""
},tls-verification=${proxy.scert ? "false" : "true"}`; }${
proxy["ws-path"] ? ", obfs-uri=" + proxy["ws-path"] : ""
}, tls-verification=${proxy.scert ? "false" : "true"}`;
} else { } else {
// ws // ws
obfs_opts = `,obfs=ws,obfs-host=${proxy["ws-headers"].Host}${ obfs_opts = `,obfs=ws,${
proxy["ws-path"] ? ",obfs-uri=" + proxy["ws-path"] : "" proxy["ws-headers"].Host ? ", obfs-host=" + proxy["ws-headers"].Host : ""
}${
proxy["ws-path"] ? ", obfs-uri=" + proxy["ws-path"] : ""
}`; }`;
} }
} else { } else {
// tcp // tcp
if (proxy.tls) { if (proxy.tls) {
obfs_opts = `,obfs=over-tls,obfs-host=${ obfs_opts = `, obfs=over-tls${
proxy.sni proxy.sni ? ", obfs-host=" + proxy.sni : ""
},tls-verification=${proxy.scert ? "false" : "true"}`; }, tls-verification=${proxy.scert ? "false" : "true"}`;
} }
} }
return `vmess=${proxy.server}:${proxy.port},method=${ return `vmess=${proxy.server}:${proxy.port},method=${
proxy.cipher === "auto" ? "none" : proxy.cipher proxy.cipher === "auto" ? "none" : proxy.cipher
},password=${proxy.uuid}${obfs_opts}${ },password=${proxy.uuid}${obfs_opts}${
proxy.tfo ? ",fast-open=true" : ",fast-open=false" proxy.tfo ? ", fast-open=true" : ", fast-open=false"
}${proxy.udp ? ",udp-relay=true" : ",udp-relay=false"},tag=${ }${proxy.udp ? ", udp-relay=true" : ", udp-relay=false"},tag=${
proxy.name proxy.name
}`; }`;
case "trojan": case "trojan":
return `trojan=${proxy.server}:${proxy.port},password=${ return `trojan=${proxy.server}:${proxy.port},password=${
proxy.password proxy.password
}${proxy.sni ? ",tls-host=" + proxy.sni : ""},over-tls=true,tls-verification=${ }${proxy.sni ? ", tls-host=" + proxy.sni : ""}, over-tls=true, tls-verification=${
proxy.scert ? "false" : "true" proxy.scert ? "false" : "true"
}${proxy.tfo ? ",fast-open=true" : ",fast-open=false"}${ }${proxy.tfo ? ", fast-open=true" : ", fast-open=false"}${
proxy.udp ? ",udp-relay=true" : ",udp-relay=false" proxy.udp ? ", udp-relay=true" : ", udp-relay=false"
},tag=${proxy.name}`; },tag=${proxy.name}`;
case "http": case "http":
tls_opts = ""; tls_opts = "";
if (proxy.tls) { if (proxy.tls) {
tls_opts = `,over-tls=true,tls-verification=${ tls_opts = `, over-tls=true, tls-verification=${
proxy.scert ? "false" : "true" proxy.scert ? "false" : "true"
},tls-host=${proxy.sni}`; }${
proxy.sni ? ", tls-host=" + proxy.sni : ""
}`;
} }
return `http=${proxy.server}:${proxy.port},username=${ return `http=${proxy.server}:${proxy.port}, username=${
proxy.username proxy.username
},password=${proxy.password}${tls_opts}${ }, password=${proxy.password}${tls_opts}${
proxy.tfo ? ",fast-open=true" : ",fast-open=false" proxy.tfo ? ", fast-open=true" : ", fast-open=false"
},tag=${proxy.name}`; }, tag=${proxy.name}`;
} }
throw new Error( throw new Error(
`Platform ${targetPlatform} does not support proxy type: ${proxy.type}` `Platform ${targetPlatform} does not support proxy type: ${proxy.type}`
@ -1741,7 +1752,7 @@ function Loon_Producer() {
if (proxy.plugin) { if (proxy.plugin) {
if (proxy.plugin === "obfs") { if (proxy.plugin === "obfs") {
const {mode, host} = proxy["plugin-opts"]; const {mode, host} = proxy["plugin-opts"];
obfs_opts = `,${mode},${host}`; obfs_opts = `,${mode},${host || ""}`;
} else { } else {
throw new Error( throw new Error(
`Platform ${targetPlatform} does not support obfs option: ${proxy.obfs}` `Platform ${targetPlatform} does not support obfs option: ${proxy.obfs}`
@ -1749,39 +1760,45 @@ function Loon_Producer() {
} }
} }
return `${proxy.name}=shadowsocks,${proxy.server},${proxy.port},${proxy.cipher},"${proxy.password}"${obfs_opts}`; return `${proxy.name}=shadowsocks, ${proxy.server}, ${proxy.port}, ${proxy.cipher}, "${proxy.password}"${obfs_opts}`;
case "ssr": case "ssr":
return `${proxy.name}=shadowsocksr,${proxy.server},${proxy.port},${proxy.cipher},"${proxy.password}",${proxy.protocol},{${proxy["protocol-param"]}},${proxy.obfs},{${proxy["obfs-param"]}}`; return `${proxy.name}=shadowsocksr, ${proxy.server}, ${proxy.port}, ${proxy.cipher}, "${proxy.password}", ${proxy.protocol}, {${proxy["protocol-param"] || ""}}, ${proxy.obfs}, {${proxy["obfs-param"] || ""}}`;
case "vmess": case "vmess":
obfs_opts = ""; obfs_opts = "";
if (proxy.network === "ws") { if (proxy.network === "ws") {
const host = proxy["ws-headers"].Host; const host = proxy["ws-headers"].Host || proxy.server;
obfs_opts = `,transport:ws,host:${host},path:${ obfs_opts = `, transport:ws, host:${host}, path:${
proxy["ws-path"] || "/" proxy["ws-path"] || "/"
}`; }`;
} else { } else {
obfs_opts = `,transport:tcp`; obfs_opts = `, transport:tcp`;
} }
if (proxy.tls) { if (proxy.tls) {
obfs_opts += `,tls-name=${proxy.sni},skip-cert-verify:${proxy.scert}`; obfs_opts += `${
proxy.sni ? ", tls-name:" + proxy.sni : ""
},skip-cert-verify:${proxy.scert || "false"}`;
} }
return `${proxy.name}=vmess,${proxy.server},${proxy.port},${ return `${proxy.name}=vmess, ${proxy.server}, ${proxy.port}, ${
proxy.cipher === "auto" ? "none" : proxy.cipher proxy.cipher === "auto" ? "none" : proxy.cipher
},"${proxy.uuid}",over-tls:${proxy.tls}${obfs_opts}`; }, "${proxy.uuid}", over-tls:${proxy.tls || "false"}${obfs_opts}`;
case "trojan": case "trojan":
return `${proxy.name}=trojan,${proxy.server},${proxy.port},"${ return `${proxy.name}=trojan, ${proxy.server}, ${proxy.port}, "${
proxy.password proxy.password
}"${proxy.sni ? ",tls-name:" + proxy.sni : ""},skip-cert-verify:${ }"${
proxy.sni ? ", tls-name:" + proxy.sni : ""
}, skip-cert-verify:${
proxy.scert || "false" proxy.scert || "false"
}`; }`;
case "http": case "http":
tls_opts = ""; tls_opts = "";
const base = `${proxy.name}=${proxy.tls ? "http" : "https"},${ const base = `${proxy.name}=${proxy.tls ? "http" : "https"}, ${
proxy.server proxy.server
},${proxy.port},${proxy.username || ""},${proxy.password || ""}`; }, ${proxy.port}, ${proxy.username || ""}, ${proxy.password || ""}`;
if (proxy.tls) { if (proxy.tls) {
// https // https
tls_opts = `,skip-cert-verify:${proxy.scert},tls-name:${proxy.sni}`; tls_opts = `${
proxy.sni ? ", tls-name:" + proxy.sni : ""
}, skip-cert-verify:${proxy.scert}`;
return base + tls_opts; return base + tls_opts;
} else return base; } else return base;
} }
@ -1800,58 +1817,61 @@ function Surge_Producer() {
case "ss": case "ss":
obfs_opts = ""; obfs_opts = "";
if (proxy.plugin) { if (proxy.plugin) {
const {host, mode} = proxy['plugin-opts'];
if (proxy.plugin === "obfs") { if (proxy.plugin === "obfs") {
obfs_opts = `,obfs=${proxy["plugin-opts"].mode},obfs-host=${proxy["plugin-opts"].host}`; obfs_opts = `, obfs=${mode}${
host ? ", obfs-host=" + host : ""
}`;
} else { } else {
throw new Error( throw new Error(
`Platform ${targetPlatform} does not support obfs option: ${proxy.obfs}` `Platform ${targetPlatform} does not support obfs option: ${proxy.obfs}`
); );
} }
} }
return `${proxy.name}=ss,${proxy.server},${proxy.port},encrypt-method=${ return `${proxy.name}=ss, ${proxy.server}, ${proxy.port}, encrypt-method=${
proxy.cipher proxy.cipher
},password=${proxy.password}${obfs_opts},tfo=${ }, password=${proxy.password}${obfs_opts}, tfo=${
proxy.tfo || "false" proxy.tfo || "false"
},udp-relay=${proxy.udp || "false"}`; }, udp-relay=${proxy.udp || "false"}`;
case "vmess": case "vmess":
tls_opts = ""; tls_opts = "";
let config = `${proxy.name}=vmess,${proxy.server},${ let config = `${proxy.name}=vmess, ${proxy.server},${
proxy.port proxy.port
},username=${proxy.uuid},tls=${proxy.tls},tfo=${proxy.tfo || "false"}`; }, username=${proxy.uuid}, tls=${proxy.tls || "false"}, tfo=${proxy.tfo || "false"}`;
if (proxy.network === "ws") { if (proxy.network === "ws") {
const path = proxy["ws-path"]; const path = proxy["ws-path"] || "/";
const host = proxy["ws-headers"].Host; const host = proxy["ws-headers"].Host;
config += `,ws=true${path ? ",ws-path=" + path : ""}${ config += `, ws=true${path ? ", ws-path=" + path : ""}${
host ? ",ws-headers=HOST:" + host : "" host ? ", ws-headers=HOST:" + host : ""
}`; }`;
} }
if (proxy.tls) { if (proxy.tls) {
config += `${ config += `${
typeof proxy.scert !== "undefined" typeof proxy.scert !== "undefined"
? ",skip-cert-verify=" + proxy.scert ? ", skip-cert-verify=" + proxy.scert
: "" : ""
}`; }`;
config += proxy.sni ? `,sni=${proxy.sni}` : ""; config += proxy.sni ? `, sni=${proxy.sni}` : "";
} }
return config; return config;
case "trojan": case "trojan":
return `${proxy.name}=trojan,${proxy.server},${proxy.port},password=${ return `${proxy.name}=trojan, ${proxy.server},${proxy.port}, password=${
proxy.password proxy.password
}${ }${
typeof proxy.scert !== "undefined" typeof proxy.scert !== "undefined"
? ",skip-cert-verify=" + proxy.scert ? ", skip-cert-verify=" + proxy.scert
: "" : ""
}${proxy.sni ? ",sni=" + proxy.sni : ""},tfo=${proxy.tfo || "false"}`; }${proxy.sni ? ", sni=" + proxy.sni : ""}, tfo=${proxy.tfo || "false"}`;
case "http": case "http":
tls_opts = ",tls=false"; tls_opts = ", tls=false";
if (proxy.tls) { if (proxy.tls) {
tls_opts = `,tls=true,skip-cert-verify=${proxy.scert},sni=${proxy.sni}`; tls_opts = `, tls=true, skip-cert-verify=${proxy.scert}, sni=${proxy.sni}`;
} }
return `${proxy.name}=http,${proxy.server},${proxy.port}${ return `${proxy.name}=http, ${proxy.server}, ${proxy.port}${
proxy.username ? ",username=" + proxy.username : "" proxy.username ? ", username=" + proxy.username : ""
}${ }${
proxy.password ? ",password=" + proxy.password : "" proxy.password ? ", password=" + proxy.password : ""
}${tls_opts},tfo=${proxy.tfo || "false"}`; }${tls_opts}, tfo=${proxy.tfo || "false"}`;
} }
throw new Error( throw new Error(
`Platform ${targetPlatform} does not support proxy type: ${proxy.type}` `Platform ${targetPlatform} does not support proxy type: ${proxy.type}`

File diff suppressed because one or more lines are too long