diff --git a/package/ctcgfw/luci-app-vssr/Makefile b/package/ctcgfw/luci-app-vssr/Makefile index 685fc39ef1..1c6ec47218 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.18 -PKG_RELEASE:=20201204 +PKG_VERSION:=1.19 +PKG_RELEASE:=20201205 include $(INCLUDE_DIR)/package.mk @@ -46,7 +46,7 @@ define Package/luci-app-vssr SUBMENU:=3. Applications TITLE:=A New SS/SSR/V2Ray/Trojan LuCI interface PKGARCH:=all - DEPENDS:=+shadowsocksr-libev-alt +ipset +ip-full +iptables-mod-tproxy +dnsmasq-full +coreutils +coreutils-base64 +bash +pdnsd-alt +wget +luasocket +coreutils-nohup +lua-maxminddb \ + DEPENDS:=+shadowsocksr-libev-alt +ipset +ip-full +iptables-mod-tproxy +dnsmasq-full +coreutils +coreutils-base64 +bash +pdnsd-alt +wget +luasocket +lua-maxminddb \ +shadowsocks-libev-ss-local +shadowsocksr-libev-ssr-local +shadowsocks-libev-ss-redir +simple-obfs \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_plugin:v2ray-plugin \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:v2ray \ diff --git a/package/ctcgfw/luci-app-vssr/luasrc/controller/vssr.lua b/package/ctcgfw/luci-app-vssr/luasrc/controller/vssr.lua index dfd7964948..662cbfc169 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/controller/vssr.lua +++ b/package/ctcgfw/luci-app-vssr/luasrc/controller/vssr.lua @@ -28,7 +28,7 @@ function index() end entry({'admin', 'services', 'vssr', 'log'}, cbi('vssr/log'), _('Log'), 30).leaf = true - entry({'admin', 'services', 'vssr', 'licence'}, template('vssr/licence'), _('Licence'), 40).leaf = true + --entry({'admin', 'services', 'vssr', 'licence'}, template('vssr/licence'), _('Licence'), 40).leaf = true entry({'admin', 'services', 'vssr', 'refresh'}, call('refresh_data')) -- 更新白名单和GFWLIST entry({'admin', 'services', 'vssr', 'checkport'}, call('check_port')) -- 检测单个端口并返回Ping @@ -60,7 +60,7 @@ function get_subscribe() uci:set(name, '@server_subscribe[0]', 'filter_words', filter_words) uci:set_list(name, '@server_subscribe[0]', 'subscribe_url', cjson.parse(subscribe_url)) uci:commit(name) - luci.sys.exec('nohup /usr/bin/lua /usr/share/vssr/subscribe.lua >/www/check_update.htm 2>/dev/null &') + luci.sys.exec('/usr/bin/lua /usr/share/vssr/subscribe.lua >/www/check_update.htm 2>/dev/null &') e.error = 0 else e.error = 1 @@ -215,6 +215,7 @@ function get_flag() end -- 刷新检测文件 + function refresh_data() local set = luci.http.formvalue('set') local icount = 0 @@ -245,8 +246,7 @@ function refresh_data() retstring = '-1' end elseif set == 'ip_data' then - refresh_cmd = - "wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' 2>/dev/null| awk -F\\| '/CN\\|ipv4/ { printf(\"%s/%d\\n\", $4, 32-log($5)/log(2)) }' > /tmp/china_ssr.txt" + refresh_cmd = "wget -O- 'https://ispip.clang.cn/all_cn.txt' > /tmp/china_ssr.txt" sret = luci.sys.call(refresh_cmd) icount = luci.sys.exec('cat /tmp/china_ssr.txt | wc -l') if sret == 0 and tonumber(icount) > 1000 then diff --git a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/client.lua b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/client.lua index 5d4dfcebad..0c016becd4 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/client.lua +++ b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/client.lua @@ -5,7 +5,8 @@ local m, s, sec, o, kcp_enable local vssr = 'vssr' local gfwmode = 0 -if nixio.fs.access('/etc/vssr/gfw_list.conf') then + +if nixio.fs.access('/etc/dnsmasq.ssr/gfw_list.conf') then gfwmode = 1 end @@ -18,70 +19,26 @@ m:section(SimpleSection).template = 'vssr/status_top' local server_table = {} local tw_table = {} local tvb_table = {} + + +local server_table = {} uci:foreach( - vssr, + 'vssr', 'servers', function(s) - if s.alias then - server_table[s['.name']] = '[%s]:%s' % {string.upper(s.type), s.alias} - elseif s.server and s.server_port then - server_table[s['.name']] = - '[%s]:%s:%s' % - { - string.upper(s.type), - s.server, - s.server_port - } - end - - if s.flag == 'tw' then - if s.alias then - tw_table[s['.name']] = '[%s]:%s' % {string.upper(s.type), s.alias} - elseif s.server and s.server_port then - tw_table[s['.name']] = - '[%s]:%s:%s' % - { - string.upper(s.type), - s.server, - s.server_port - } - end - end - - if s.flag == 'hk' then - if s.alias then - tvb_table[s['.name']] = '[%s]:%s' % {string.upper(s.type), s.alias} - elseif s.server and s.server_port then - tvb_table[s['.name']] = - '[%s]:%s:%s' % - { - string.upper(s.type), - s.server, - s.server_port - } - end - end + s['name'] = s['.name'] + s['gname'] = '[%s]:%s' % {string.upper(s.type), s.alias} + table.insert(server_table, s) end ) - -local key_table = {} -for key, _ in pairs(server_table) do - table.insert(key_table, key) +function my_sort(a,b) + if(a.alias ~= nil and b.alias ~= nil) then + return a.alias < b.alias + end end +table.sort(server_table, my_sort) -local key_table_tw = {} -for key, _ in pairs(tw_table) do - table.insert(key_table_tw, key) -end -local key_table_tvb = {} -for key, _ in pairs(tvb_table) do - table.insert(key_table_tvb, key) -end - -table.sort(key_table) -table.sort(key_table_tw) -table.sort(key_table_tvb) local route_name = { 'youtube_server', 'tw_video_server', @@ -107,8 +64,8 @@ s.anonymous = true o = s:option(ListValue, 'global_server', translate('Main Server')) o:value('nil', translate('Disable')) -for _, key in pairs(key_table) do - o:value(key, server_table[key]) +for _, key in pairs(server_table) do + o:value(key.name, key.gname) end o.default = 'nil' o.rmempty = false @@ -116,12 +73,14 @@ o.rmempty = false o = s:option(ListValue, 'udp_relay_server', translate('Game Mode UDP Server')) o:value('', translate('Disable')) o:value('same', translate('Same as Main Server')) -for _, key in pairs(key_table) do - o:value(key, server_table[key]) +for _, key in pairs(server_table) do + o:value(key.name, key.gname) +end +if nixio.fs.access('/usr/bin/xray') or nixio.fs.access('/usr/bin/xray/xray') then + o = s:option(Flag, 'use_xray', translate('Use Xray instead of V2ray')) + o.rmempty = false end -o = s:option(Flag, 'use_xray', translate('Use Xray instead of V2ray')) -o.rmempty = false o = s:option(Flag, 'v2ray_flow', translate('Open v2ray route')) o.rmempty = false @@ -130,17 +89,15 @@ o.description = translate('When open v2ray routed,Apply may take more time.') for i, v in pairs(route_name) do o = s:option(ListValue, v, translate(route_label[i])) o:value('nil', translate('Same as Main Server')) - if (v == 'tw_video_server') then - for _, key in pairs(key_table_tw) do - o:value(key, tw_table[key]) + for _, key in pairs(server_table) do + if(v == 'tw_video_server' and key.flag == "tw") then + o:value(key.name, key.gname) end - elseif (v == 'tvb_server') then - for _, key in pairs(key_table_tvb) do - o:value(key, tvb_table[key]) + if(v == 'tvb_server' and key.flag == "hk") then + o:value(key.name, key.gname) end - else - for _, key in pairs(key_table) do - o:value(key, server_table[key]) + if(v ~= 'tvb_server' and v ~= 'tw_video_server') then + o:value(key.name, key.gname) end end o:depends('v2ray_flow', '1') @@ -162,6 +119,7 @@ o:value('router', translate('IP Route Mode')) o:value('all', translate('Global Mode')) o:value('oversea', translate('Oversea Mode')) o.default = 'router' + o = s:option(ListValue, 'dports', translate('Proxy Ports')) o:value('1', translate('All Ports')) o:value('2', translate('Only Common Ports')) diff --git a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/servers.lua b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/servers.lua index 963aa35763..93e82b575c 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/servers.lua +++ b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/servers.lua @@ -24,7 +24,12 @@ uci:foreach( name = s['.name'] end ) - +function my_sort(a,b) + if(a.alias ~= nil and b.alias ~= nil) then + return a.alias < b.alias + end +end +table.sort(server_table, my_sort) m = Map(vssr) m:section(SimpleSection).template = 'vssr/status_top' @@ -37,6 +42,7 @@ s.sortable = false s.des = server_count s.current = uci:get('vssr', name, 'global_server') +s.serverTable = server_table s.servers = json.stringify(server_table) s.template = 'vssr/tblsection' s.extedit = luci.dispatcher.build_url('admin/services/vssr/servers/%s') diff --git a/package/ctcgfw/luci-app-vssr/luasrc/view/vssr/tblsection.htm b/package/ctcgfw/luci-app-vssr/luasrc/view/vssr/tblsection.htm index b23a504532..527055d268 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/view/vssr/tblsection.htm +++ b/package/ctcgfw/luci-app-vssr/luasrc/view/vssr/tblsection.htm @@ -11,34 +11,37 @@