From 45454823fe090d5140fda4d37feafae9c8f25668 Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Sat, 28 Mar 2020 15:50:04 +0800 Subject: [PATCH] luci-app-vssr: sync with upstream source --- package/ctcgfw/luci-app-vssr/Makefile | 4 +- .../luasrc/model/cbi/vssr/advanced.lua | 20 ++-- .../luasrc/model/cbi/vssr/status.lua | 2 +- .../luasrc/model/cbi/vssr/subscription.lua | 4 + package/ctcgfw/luci-app-vssr/po/zh-cn/vssr.po | 7 +- .../root/usr/share/vssr/genconfig_v2ray.lua | 96 ------------------- .../root/usr/share/vssr/subscribe.lua | 25 +++-- .../root/www/luci-static/vssr/css/vssr.css | 2 +- 8 files changed, 40 insertions(+), 120 deletions(-) delete mode 100755 package/ctcgfw/luci-app-vssr/root/usr/share/vssr/genconfig_v2ray.lua diff --git a/package/ctcgfw/luci-app-vssr/Makefile b/package/ctcgfw/luci-app-vssr/Makefile index 2e3c3283d4..d2edcf0cfc 100644 --- a/package/ctcgfw/luci-app-vssr/Makefile +++ b/package/ctcgfw/luci-app-vssr/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-vssr -PKG_VERSION:=1.30 -PKG_RELEASE:=4-20200326 +PKG_VERSION:=1.31 +PKG_RELEASE:=4-20200328 PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \ diff --git a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/advanced.lua b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/advanced.lua index 746e76349d..15c2ba747b 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/advanced.lua +++ b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/advanced.lua @@ -28,6 +28,16 @@ o.rmempty = false o = s:option(Flag, "enable_switch", translate("Enable Auto Switch")) o.rmempty = false +-- [[ adblock ]]-- +o = s:option(Flag, "adblock", translate("Enable adblock")) +o.rmempty = false + +o = s:option(Value, "adblock_url", translate("adblock_url")) +o:value("https://gitee.com/privacy-protection-tools/anti-ad/raw/master/anti-ad-for-dnsmasq.conf", translate("anti-AD")) +o.default = "https://gitee.com/privacy-protection-tools/anti-ad/raw/master/anti-ad-for-dnsmasq.conf" +o:depends("adblock", "1") +o.description = translate("Support AdGuardHome and DNSMASQ format list") + o = s:option(Value, "switch_time", translate("Switch check cycly(second)")) o.datatype = "uinteger" o:depends("enable_switch", "1") @@ -69,16 +79,6 @@ o.datatype = "port" o.default = 1081 o.rmempty = false end --- [[ adblock ]]-- -s = m:section(TypedSection, "global", translate("adblock settings")) -s.anonymous = true - -o = s:option(Flag, "adblock", translate("Enable adblock")) -o.rmempty = false - -o = s:option(Value, "adblock_url", translate("adblock_url")) -o.default = "https://gitee.com/privacy-protection-tools/anti-ad/raw/master/anti-ad-for-dnsmasq.conf" -o.description = translate("Support AdGuardHome and DNSMASQ format list") -- [[ chnroute ]] s = m:section(TypedSection, "global", translate("Chnroute Setting")) diff --git a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/status.lua b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/status.lua index 5371ba348e..34a1b3fa07 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/status.lua +++ b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/status.lua @@ -1,7 +1,7 @@ -- Copyright (C) 2017 yushi studio -- Licensed to the public under the GNU General Public License v3. -local IPK_Version="20200325.1.29" +local IPK_Version="20200328.1.31" local m, s, o local redir_run=0 local reudp_run=0 diff --git a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/subscription.lua b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/subscription.lua index e2bc92a5c5..3a0f06738d 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/subscription.lua +++ b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/subscription.lua @@ -49,6 +49,10 @@ o.rmempty = false o = s:option(DynamicList, "subscribe_url", translate("Subscribe URL")) o.rmempty = true +o = s:option(Value, "filter_words", translate("Subscribe Filter Words")) +o.rmempty = true +o.description = translate("Filter Words splited by /") + o = s:option(Flag, "proxy", translate("Through proxy update")) o.rmempty = false o.description = translate("Through proxy update list, Not Recommended ") diff --git a/package/ctcgfw/luci-app-vssr/po/zh-cn/vssr.po b/package/ctcgfw/luci-app-vssr/po/zh-cn/vssr.po index d2b90e4240..3118b04bf5 100644 --- a/package/ctcgfw/luci-app-vssr/po/zh-cn/vssr.po +++ b/package/ctcgfw/luci-app-vssr/po/zh-cn/vssr.po @@ -797,8 +797,11 @@ msgstr "插件" msgid "Plugin Opts" msgstr "插件参数" -msgid "Before subscribing please click below to delete all servers in the subscription" -msgstr "使用此订阅前请先删除所有服务器在订阅" +msgid "Subscribe Filter Words" +msgstr "订阅节点关键字过滤" + +msgid "Filter Words splited by /" +msgstr "命中关键字的节点将被丢弃。多个关键字用 / 分隔" msgid "Chnroute Setting" msgstr "国内IP段数据库更新设置" diff --git a/package/ctcgfw/luci-app-vssr/root/usr/share/vssr/genconfig_v2ray.lua b/package/ctcgfw/luci-app-vssr/root/usr/share/vssr/genconfig_v2ray.lua deleted file mode 100755 index 32d14bdb97..0000000000 --- a/package/ctcgfw/luci-app-vssr/root/usr/share/vssr/genconfig_v2ray.lua +++ /dev/null @@ -1,96 +0,0 @@ -local ucursor = require "luci.model.uci".cursor() -local json = require "luci.jsonc" -local server_section = arg[1] -local proto = arg[2] -local local_port = arg[3] -local host = arg[4] - -local server = ucursor:get_all("vssr", server_section) - -local v2ray = { - log = { - -- error = "/var/ssrplus.log", - loglevel = "warning" - }, - -- 传入连接 - inbound = { - port = local_port, - protocol = "dokodemo-door", - settings = { - network = proto, - followRedirect = true - }, - sniffing = { - enabled = true, - destOverride = { "http", "tls" } - } - }, - -- 传出连接 - outbound = { - protocol = "vmess", - settings = { - vnext = { - { - address = server.server, - port = tonumber(server.server_port), - users = { - { - id = server.vmess_id, - alterId = tonumber(server.alter_id), - security = server.security - } - } - } - } - }, - -- 底层传输配置 - streamSettings = { - network = server.transport, - security = (server.tls == '1') and "tls" or "none", - tlsSettings = {allowInsecure = (server.insecure == "1") and true or false,serverName=server.ws_host,}, - kcpSettings = (server.transport == "kcp") and { - mtu = tonumber(server.mtu), - tti = tonumber(server.tti), - uplinkCapacity = tonumber(server.uplink_capacity), - downlinkCapacity = tonumber(server.downlink_capacity), - congestion = (server.congestion == "1") and true or false, - readBufferSize = tonumber(server.read_buffer_size), - writeBufferSize = tonumber(server.write_buffer_size), - header = { - type = server.kcp_guise - } - } or nil, - wsSettings = (server.transport == "ws") and (server.ws_path ~= nil or server.ws_host ~= nil) and { - path = server.ws_path, - headers = (server.ws_host ~= nil) and { - Host = server.ws_host - } or nil, - } or nil, - httpSettings = (server.transport == "h2") and { - path = server.h2_path, - host = server.h2_host, - } or nil, - quicSettings = (server.transport == "quic") and { - security = server.quic_security, - key = server.quic_key, - header = { - type = server.quic_guise - } - } or nil - }, - mux = { - enabled = (server.mux == "1") and true or false, - concurrency = tonumber(server.concurrency) - } - }, - - -- 额外传出连接 - outboundDetour = { - { - protocol = "freedom", - tag = "direct", - settings = { keep = "" } - } - } -} -print(json.stringify(v2ray, 1)) diff --git a/package/ctcgfw/luci-app-vssr/root/usr/share/vssr/subscribe.lua b/package/ctcgfw/luci-app-vssr/root/usr/share/vssr/subscribe.lua index 9c2cb7a976..53cf522ec2 100644 --- a/package/ctcgfw/luci-app-vssr/root/usr/share/vssr/subscribe.lua +++ b/package/ctcgfw/luci-app-vssr/root/usr/share/vssr/subscribe.lua @@ -23,6 +23,7 @@ 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', {}) +local filter_words = ucic:get_first(name, 'server_subscribe', 'filter_words', 'QQ群') local log = function(...) print(os.date("%Y-%m-%d %H:%M:%S ") .. table.concat({ ... }, " ")) @@ -276,10 +277,21 @@ local function processData(szType, content) end -- wget local function wget(url) - local stdout = luci.sys.exec('wget-ssl --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" --no-check-certificate -t 3 -T 10 -O- "' .. url .. '"') + local stdout = luci.sys.exec('wget-ssl -q --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" --no-check-certificate -t 3 -T 10 -O- "' .. url .. '"') return trim(stdout) end +local function check_filer(result) + do + local filter_word = split(filter_words, "/") + for i, v in pairs(filter_word) do + if result.alias:find(v) then + log('订阅节点关键字过滤:“' .. v ..'” ,该节点被丢弃') + return true + end + end + end +end local execute = function() -- exec do @@ -337,13 +349,10 @@ local execute = function() end -- log(result) if result then - if result.alias:find("过期时间") or - result.alias:find("剩余流量") or - result.alias:find("QQ群") or - result.alias:find("官网") or - result.alias:find("防失联地址") or - not result.server or - result.server:match("[^0-9a-zA-Z%-%.%s]") -- 中文做地址的 也没有人拿中文域名搞,就算中文域也有Puny Code SB 机场 + if + not result.server or + check_filer(result) or + result.server:match("[^0-9a-zA-Z%-%.%s]") -- 中文做地址的 也没有人拿中文域名搞,就算中文域也有Puny Code SB 机场 then log('丢弃无效节点: ' .. result.type ..' 节点, ' .. result.alias) else diff --git a/package/ctcgfw/luci-app-vssr/root/www/luci-static/vssr/css/vssr.css b/package/ctcgfw/luci-app-vssr/root/www/luci-static/vssr/css/vssr.css index 5805e27ee4..7ec27bf899 100644 --- a/package/ctcgfw/luci-app-vssr/root/www/luci-static/vssr/css/vssr.css +++ b/package/ctcgfw/luci-app-vssr/root/www/luci-static/vssr/css/vssr.css @@ -392,7 +392,7 @@ https://github.com/pure-css/pure/blob/master/LICENSE.md } .cbi-section-table-row.fast{ - background: #177cb0; + background: #C01818; color: #fff; }