luci-app-ssr-plus: ssrurl: use standard URL scheme to parse trojan link
Fixes: #1008 Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
parent
36c6f02c75
commit
c05feeff71
@ -215,42 +215,25 @@ function import_ssr_url(btn, urlname, sid) {
|
|||||||
s.innerHTML = "<font color='green'><%:Import configuration information successfully.%></font>";
|
s.innerHTML = "<font color='green'><%:Import configuration information successfully.%></font>";
|
||||||
return false;
|
return false;
|
||||||
case "trojan":
|
case "trojan":
|
||||||
var url0, param = "";
|
try {
|
||||||
var ploc = ssu[1].indexOf("#");
|
var url = new URL("http://" + ssu[1]);
|
||||||
if (ploc > 0) {
|
} catch(e) {
|
||||||
url0 = ssu[1].substr(0, ploc);
|
alert(e)
|
||||||
param = ssu[1].substr(ploc + 1);
|
return false;
|
||||||
} else {
|
|
||||||
url0 = ssu[1]
|
|
||||||
}
|
}
|
||||||
var sstr = url0;
|
|
||||||
|
document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = url.hash ? decodeURIComponent(url.hash.slice(1)) : "";
|
||||||
document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "v2ray";
|
document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "v2ray";
|
||||||
document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event);
|
document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event);
|
||||||
document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].value = "trojan";
|
document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].value = "trojan";
|
||||||
document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].dispatchEvent(event);
|
document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].dispatchEvent(event);
|
||||||
var team = sstr.split('@');
|
document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = url.hostname;
|
||||||
var password = team[0]
|
document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = url.port || "80";
|
||||||
var serverPart = team[1].split(':');
|
document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0].value = decodeURIComponent(url.username);
|
||||||
var others = serverPart[1].split('?');
|
|
||||||
var port = parseInt(others[0]);
|
|
||||||
var queryParam = {}
|
|
||||||
if (others.length > 1) {
|
|
||||||
var queryParams = others[1]
|
|
||||||
var queryArray = queryParams.split('&');
|
|
||||||
for (i = 0; i < queryArray.length; i++) {
|
|
||||||
var params = queryArray[i].split('=');
|
|
||||||
queryParam[decodeURIComponent(params[0])] = decodeURIComponent(params[1] || '');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = serverPart[0];
|
|
||||||
document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = port || '443';
|
|
||||||
document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0].value = password;
|
|
||||||
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].checked = true;
|
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].checked = true;
|
||||||
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event);
|
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event);
|
||||||
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = queryParam.sni || '';
|
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = url.searchParams.get("sni");
|
||||||
if (param != undefined) {
|
|
||||||
document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = decodeURI(param);
|
|
||||||
}
|
|
||||||
s.innerHTML = "<font color='green'><%:Import configuration information successfully.%></font>";
|
s.innerHTML = "<font color='green'><%:Import configuration information successfully.%></font>";
|
||||||
return false;
|
return false;
|
||||||
case "vmess":
|
case "vmess":
|
||||||
|
Loading…
Reference in New Issue
Block a user