diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 8a6e81abb..31733a1ee 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -215,42 +215,25 @@ function import_ssr_url(btn, urlname, sid) { s.innerHTML = "<%:Import configuration information successfully.%>"; return false; case "trojan": - var url0, param = ""; - var ploc = ssu[1].indexOf("#"); - if (ploc > 0) { - url0 = ssu[1].substr(0, ploc); - param = ssu[1].substr(ploc + 1); - } else { - url0 = ssu[1] + try { + var url = new URL("http://" + ssu[1]); + } catch(e) { + alert(e) + return false; } - 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].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].value = "trojan"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].dispatchEvent(event); - var team = sstr.split('@'); - var password = team[0] - var serverPart = team[1].split(':'); - 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 + '.server')[0].value = url.hostname; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = url.port || "80"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0].value = decodeURIComponent(url.username); document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = queryParam.sni || ''; - if (param != undefined) { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = decodeURI(param); - } + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = url.searchParams.get("sni"); + s.innerHTML = "<%:Import configuration information successfully.%>"; return false; case "vmess":