From ae7a5d706026c70ff5236eef6d72211cfcac5642 Mon Sep 17 00:00:00 2001 From: dongjuanyong <38952488+dongjuanyong@users.noreply.github.com> Date: Thu, 9 Apr 2020 01:07:52 +0800 Subject: [PATCH] luci-app-ssr-plus: OpenWrt SNAPSHOT compatibility (#4154) * luci-app-ssr-plus: OpenWrt SNAPSHOT compatibility Fix #4143 * Modify getElementById to getElementsByName Luci modification for OpenWrt 19.07 or higher --- .../luasrc/view/shadowsocksr/ssrurl.htm | 142 +++++++++--------- .../root/usr/share/shadowsocksr/subscribe.lua | 2 +- 2 files changed, 72 insertions(+), 72 deletions(-) diff --git a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 778de53bf251a4..e734af05a84208 100644 --- a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -47,15 +47,15 @@ var s = document.getElementById(urlname + '-status'); if (!s) return false; - var v_server = document.getElementById('cbid.shadowsocksr.' + sid + '.server'); - var v_port = document.getElementById('cbid.shadowsocksr.' + sid + '.server_port'); - var v_protocol = document.getElementById('cbid.shadowsocksr.' + sid + '.protocol'); - var v_method = document.getElementById('cbid.shadowsocksr.' + sid + '.encrypt_method'); - var v_obfs = document.getElementById('cbid.shadowsocksr.' + sid + '.obfs'); - var v_password = document.getElementById('cbid.shadowsocksr.' + sid + '.password'); - var v_obfs_param = document.getElementById('cbid.shadowsocksr.' + sid + '.obfs_param'); - var v_protocol_param = document.getElementById('cbid.shadowsocksr.' + sid + '.protocol_param'); - var v_alias = document.getElementById('cbid.shadowsocksr.' + sid + '.alias'); + var v_server = document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0]; + var v_port = document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0]; + var v_protocol = document.getElementsByName('cbid.shadowsocksr.' + sid + '.protocol')[0]; + var v_method = document.getElementsByName('cbid.shadowsocksr.' + sid + '.encrypt_method')[0]; + var v_obfs = document.getElementsByName('cbid.shadowsocksr.' + sid + '.obfs')[0]; + var v_password = document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0]; + var v_obfs_param = document.getElementsByName('cbid.shadowsocksr.' + sid + '.obfs_param')[0]; + var v_protocol_param = document.getElementsByName('cbid.shadowsocksr.' + sid + '.protocol_param')[0]; + var v_alias = document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0]; var ssr_str = v_server.value + ":" + v_port.value + ":" + v_protocol.value + ":" + @@ -104,8 +104,8 @@ if (ssu[0] == "ssr") { var sstr = b64decsafe(ssu[1]); var ploc = sstr.indexOf("/?"); - document.getElementById('cbid.shadowsocksr.' + sid + '.type').value = "ssr"; - document.getElementById('cbid.shadowsocksr.' + sid + '.type').dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "ssr"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event); var url0, param = ""; if (ploc > 0) { url0 = sstr.substr(0, ploc); @@ -123,17 +123,17 @@ pdict[decodeURIComponent(b[0])] = decodeURIComponent(b[1] || ''); } } - document.getElementById('cbid.shadowsocksr.' + sid + '.server').value = ssm[1]; - document.getElementById('cbid.shadowsocksr.' + sid + '.server_port').value = ssm[2]; - document.getElementById('cbid.shadowsocksr.' + sid + '.protocol').value = ssm[3]; - document.getElementById('cbid.shadowsocksr.' + sid + '.encrypt_method').value = ssm[4]; - document.getElementById('cbid.shadowsocksr.' + sid + '.obfs').value = ssm[5]; - document.getElementById('cbid.shadowsocksr.' + sid + '.password').value = b64decsafe(ssm[6]); - document.getElementById('cbid.shadowsocksr.' + sid + '.obfs_param').value = dictvalue(pdict, 'obfsparam'); - document.getElementById('cbid.shadowsocksr.' + sid + '.protocol_param').value = dictvalue(pdict, 'protoparam'); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = ssm[1]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = ssm[2]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.protocol')[0].value = ssm[3]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.encrypt_method')[0].value = ssm[4]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.obfs')[0].value = ssm[5]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0].value = b64decsafe(ssm[6]); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.obfs_param')[0].value = dictvalue(pdict, 'obfsparam'); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.protocol_param')[0].value = dictvalue(pdict, 'protoparam'); var rem = pdict['remarks']; if (typeof (rem) != 'undefined' && rem != '' && rem.length > 0) - document.getElementById('cbid.shadowsocksr.' + sid + '.alias').value = b64decutf8safe(rem); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = b64decutf8safe(rem); s.innerHTML = "导入ShadowsocksR配置信息成功"; return false; } else if (ssu[0] == "ss") { @@ -169,35 +169,35 @@ method = userInfo.substr(0, userInfoSplitIndex); password = userInfo.substr(userInfoSplitIndex + 1); } - document.getElementById('cbid.shadowsocksr.' + sid + '.type').value = "ss"; - document.getElementById('cbid.shadowsocksr.' + sid + '.type').dispatchEvent(event); - document.getElementById('cbid.shadowsocksr.' + sid + '.server').value = server; - document.getElementById('cbid.shadowsocksr.' + sid + '.server_port').value = port; - document.getElementById('cbid.shadowsocksr.' + sid + '.password').value = password || ""; - document.getElementById('cbid.shadowsocksr.' + sid + '.encrypt_method_ss').value = method || ""; - document.getElementById('cbid.shadowsocksr.' + sid + '.plugin').value = plugin || ""; - document.getElementById('cbid.shadowsocksr.' + sid + '.plugin_opts').value = pluginOpts || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "ss"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = server; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = port; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0].value = password || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.encrypt_method_ss')[0].value = method || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.plugin')[0].value = plugin || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.plugin_opts')[0].value = pluginOpts || ""; if (param != undefined) { - document.getElementById('cbid.shadowsocksr.' + sid + '.alias').value = decodeURI(param); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = decodeURI(param); } s.innerHTML = "导入Shadowsocks配置信息成功"; } else { var sstr = b64decsafe(url0); - document.getElementById('cbid.shadowsocksr.' + sid + '.type').value = "ss"; - document.getElementById('cbid.shadowsocksr.' + sid + '.type').dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "ss"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event); var team = sstr.split('@'); console.log(param); var part1 = team[0].split(':'); var part2 = team[1].split(':'); - document.getElementById('cbid.shadowsocksr.' + sid + '.server').value = part2[0]; - document.getElementById('cbid.shadowsocksr.' + sid + '.server_port').value = part2[1]; - document.getElementById('cbid.shadowsocksr.' + sid + '.password').value = part1[1]; - document.getElementById('cbid.shadowsocksr.' + sid + '.encrypt_method_ss').value = part1[0]; - document.getElementById('cbid.shadowsocksr.' + sid + '.plugin').value = ""; - document.getElementById('cbid.shadowsocksr.' + sid + '.plugin_opts').value = ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = part2[0]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = part2[1]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0].value = part1[1]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.encrypt_method_ss')[0].value = part1[0]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.plugin')[0].value = ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.plugin_opts')[0].value = ""; if (param != undefined) { - document.getElementById('cbid.shadowsocksr.' + sid + '.alias').value = decodeURI(param); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = decodeURI(param); } s.innerHTML = "导入Shadowsocks配置信息成功"; } @@ -213,8 +213,8 @@ } var sstr = url0; - document.getElementById('cbid.shadowsocksr.' + sid + '.type').value = "trojan"; - document.getElementById('cbid.shadowsocksr.' + sid + '.type').dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "trojan"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event); var team = sstr.split('@'); var password = team[0] var serverPart = team[1].split(':'); @@ -230,63 +230,63 @@ } } - document.getElementById('cbid.shadowsocksr.' + sid + '.server').value = serverPart[0]; - document.getElementById('cbid.shadowsocksr.' + sid + '.server_port').value = port; - document.getElementById('cbid.shadowsocksr.' + sid + '.password').value = password; - document.getElementById('cbid.shadowsocksr.' + sid + '.tls').checked = true; - document.getElementById('cbid.shadowsocksr.' + sid + '.tls').dispatchEvent(event); - document.getElementById('cbid.shadowsocksr.' + sid + '.tls_host').value = queryParam.peer || ''; - document.getElementById('cbid.shadowsocksr.' + sid + '.insecure').checked = queryParam.allowInsecure === '1'; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = serverPart[0]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = port; + 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].dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = queryParam.peer || ''; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].checked = queryParam.allowInsecure === '1'; if (param != undefined) { - document.getElementById('cbid.shadowsocksr.' + sid + '.alias').value = decodeURI(param); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = decodeURI(param); } s.innerHTML = "导入Trojan配置信息成功"; return false; } else if (ssu[0] == "vmess") { var sstr = b64DecodeUnicode(ssu[1]); var ploc = sstr.indexOf("/?"); - document.getElementById('cbid.shadowsocksr.' + sid + '.type').value = "v2ray"; - document.getElementById('cbid.shadowsocksr.' + sid + '.type').dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "v2ray"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event); var url0, param = ""; if (ploc > 0) { url0 = sstr.substr(0, ploc); param = sstr.substr(ploc + 2); } var ssm = JSON.parse(sstr); - document.getElementById('cbid.shadowsocksr.' + sid + '.alias').value = ssm.ps; - document.getElementById('cbid.shadowsocksr.' + sid + '.server').value = ssm.add; - document.getElementById('cbid.shadowsocksr.' + sid + '.server_port').value = ssm.port; - document.getElementById('cbid.shadowsocksr.' + sid + '.alter_id').value = ssm.aid; - document.getElementById('cbid.shadowsocksr.' + sid + '.vmess_id').value = ssm.id; - document.getElementById('cbid.shadowsocksr.' + sid + '.transport').value = ssm.net; - document.getElementById('cbid.shadowsocksr.' + sid + '.transport').dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = ssm.ps; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = ssm.add; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = ssm.port; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.alter_id')[0].value = ssm.aid; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.vmess_id')[0].value = ssm.id; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = ssm.net; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); if (ssm.net == "tcp") { - document.getElementById('cbid.shadowsocksr.' + sid + '.http_host').value = ssm.host; - document.getElementById('cbid.shadowsocksr.' + sid + '.http_path').value = ssm.path; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_host')[0].value = ssm.host; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_path')[0].value = ssm.path; } if (ssm.net == "ws") { - document.getElementById('cbid.shadowsocksr.' + sid + '.ws_host').value = ssm.host; - document.getElementById('cbid.shadowsocksr.' + sid + '.ws_path').value = ssm.path; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_host')[0].value = ssm.host; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_path')[0].value = ssm.path; } if (ssm.net == "h2") { - document.getElementById('cbid.shadowsocksr.' + sid + '.h2_host').value = ssm.host; - document.getElementById('cbid.shadowsocksr.' + sid + '.h2_path').value = ssm.path; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_host')[0].value = ssm.host; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_path')[0].value = ssm.path; } if (ssm.net == "quic") { - document.getElementById('cbid.shadowsocksr.' + sid + '.quic_security').value = ssm.securty; - document.getElementById('cbid.shadowsocksr.' + sid + '.quic_key').value = ssm.key; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_security')[0].value = ssm.securty; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_key')[0].value = ssm.key; } if (ssm.net == "kcp") { - document.getElementById('cbid.shadowsocksr.' + sid + '.kcp_guise').value = ssm.type; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.kcp_guise')[0].value = ssm.type; } if (ssm.tls == "tls") { - document.getElementById('cbid.shadowsocksr.' + sid + '.tls').checked = true; - document.getElementById('cbid.shadowsocksr.' + sid + '.tls').dispatchEvent(event); - document.getElementById('cbid.shadowsocksr.' + sid + '.tls_host').value = ssm.host; + 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 = ssm.host; } - document.getElementById('cbid.shadowsocksr.' + sid + '.mux').checked = true; - document.getElementById('cbid.shadowsocksr.' + sid + '.mux').dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].checked = true; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].dispatchEvent(event); s.innerHTML = "导入V2ray配置信息成功"; return false; } diff --git a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 0ae7bbe6884197..7b05ce5cfcd23f 100644 --- a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -19,7 +19,7 @@ local cache = {} local nodeResult = setmetatable({}, { __index = cache }) -- update result local name = 'shadowsocksr' local uciType = 'servers' -local ucic = uci.cursor() +local ucic = luci.model.uci.cursor() local proxy = ucic:get_first(name, 'server_subscribe', 'proxy', '0') local switch = ucic:get_first(name, 'server_subscribe', 'switch', '1') local subscribe_url = ucic:get_first(name, 'server_subscribe', 'subscribe_url', {})