luci-app-vssr: bump to v1.19

This commit is contained in:
CN_SZTL 2020-12-06 13:08:09 +08:00
parent 7d8d312d59
commit 58babfc696
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
10 changed files with 153 additions and 138 deletions

View File

@ -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 \

View File

@ -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

View File

@ -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'))

View File

@ -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')

View File

@ -11,34 +11,37 @@
<div class="cbi-section-table pure-g p-in5">
<%- local isempty = true
for i, k in ipairs(self:cfgsections()) do
for i, k in ipairs(self.serverTable) do
section = k
isempty = false
local fc = (section.name == self.current) and "fast" or ""
local flag_icon = (section.flag ~= nil) and "flag-icon-" .. section.flag or "flag-icon-un"
local switch_enable = (section.switch_enable == "1") and "" or "hidden"
scope = { valueheader = "cbi/cell_valueheader", valuefooter = "cbi/cell_valuefooter" }
-%>
<div class="pure-u-1-5">
<div class="cbi-section-table-row " id="cbi-<%=self.config%>-<%=section%>" data-flag="<%=self.flag%>">
<div class="cbi-section-table-row <%=fc %> " id="cbi-<%=self.config%>-<%=section.name%>" data-flag="<%=section.flag%>" server="<%=section.server%>" server_port="<%=section.server_port%>">
<div class="loadings hide"></div>
<div class="incon type flag-icon <%=self.flag%>" data-setction="<%=section%>">
<img class="pure-imgw hidden" src="/luci-static/vssr/img/switch.png">
<div class="tp"></div>
<div class="incon type flag-icon <%=flag_icon %>" data-setction="<%=section.name%>">
<img class="pure-imgw <%=switch_enable %>" src="/luci-static/vssr/img/switch.png">
<div class="tp"><%=section.type%></div>
</div>
<div class="incon alias"></div>
<div class="incon alias"><%=section.alias%></div>
<%- if self.extedit or self.addremove then -%>
<div class="cbi-section-table-cell">
<div class="host_con"></div>
<a class="cbi-button ssr-button" type="button" value="" onclick="apply_node('<%=section%>')"
alt="<%:Apply%>" title="<%:Apply%>"><span class="icon-ok"></span> <%:Apply%></a>
<a class="cbi-button ssr-button" type="button" value="" onclick="apply_node('<%=section.name%>')"
alt="<%:Apply%>" title="<%:Apply%>"><span class="icon-use"></span> <%:Apply%></a>
<%- if self.extedit then -%>
<a class="cbi-button ssr-button " type="button" value="" <%- if type(self.extedit) == "string" then
%> onclick="location.href='<%=self.extedit:format(section)%>'" <%- elseif type(self.extedit) == "function" then
%> onclick="location.href='<%=self:extedit(section)%>'" <%- end
%> onclick="location.href='<%=self.extedit:format(section.name)%>'" <%- elseif type(self.extedit) == "function" then
%> onclick="location.href='<%=self:extedit(section.name)%>'" <%- end
%> alt="<%:Edit%>" title="<%:Edit%>"><span class="icon-edit"></span> <%:Edit%></a>
<%- end; if self.addremove then %>
<button class="cbi-button ssr-button" type="submit" value=""
onclick="this.form.cbi_state = 'del-section'; return true"
name="cbi.rts.<%=self.config%>.<%=k%>" alt="<%:Delete%>" title="<%:Delete%>" /><span
name="cbi.rts.<%=self.config%>.<%=section.name%>" alt="<%:Delete%>" title="<%:Delete%>" /><span
class="icon-delete"></span> <%:Delete%></button>
<%- end -%>
</div>
@ -93,32 +96,10 @@
const CHECK_PING_URL = '<%=luci.dispatcher.build_url("admin", "services", "vssr","checkport")%>';
const SWITCH_NODE_URL = '<%=luci.dispatcher.build_url("admin", "services", "vssr","switch")%>';
var servers = JSON.parse('<%= self.servers%>'.replace(/\t/g, ""));
var iploaded = false;
var ajaxArray = new Array();
var currentCheckCount = 0;
//渲染节点列表
$.each(servers, function (i, val) {
var id = '#cbi-' + CONFIG + '-' + val.name;
if (val.name == CURRENT) {
$(id).addClass("fast");
}
val.flag = (val.flag == undefined) ? "un" : val.flag;
$(id).attr("data-flag", val.flag);
$(id).find(".type .tp").text(val.type);
$(id).find(".type").addClass("flag-icon-" + val.flag);
$(id).find(".alias").text(val.alias);
$(id).attr("server", val.server);
$(id).attr("server_port", val.server_port);
if (val.switch_enable == "1") {
$(id).find(".pure-imgw").removeClass("hidden");
} else {
$(id).find(".pure-imgw").addClass("hidden");
}
});
//转换节点名称的Emoji显示
$(".alias").emoji();
//适配方框的大小

View File

@ -555,7 +555,12 @@ start() {
if rules; then
start_redir
mkdir -p /tmp/dnsmasq.d && cp -a /etc/vssr/ad.conf gfw_base.conf gfw_list.conf /tmp/ && cp -a /etc/vssr/oversea_list.conf /tmp/
mkdir -p /tmp/dnsmasq.d \
&& cp -a /etc/vssr/gfw_list.conf /tmp/dnsmasq.ssr \
&& cp -a /etc/vssr/gfw_base.conf /tmp/dnsmasq.ssr \
&& cp -a /etc/vssr/ad.conf /tmp/dnsmasq.ssr \
&& cp -a /etc/vssr/oversea_list.conf /tmp/dnsmasq.oversea
if ! [ "$run_mode" = "oversea" ]; then
cat >/tmp/dnsmasq.d/dnsmasq-ssr.conf <<EOF
conf-dir=/tmp/dnsmasq.ssr

View File

@ -380,6 +380,8 @@ server=/.aliengu.com/127.0.0.1#5335
ipset=/.aliengu.com/gfwlist
server=/.alkasir.com/127.0.0.1#5335
ipset=/.alkasir.com/gfwlist
server=/.all4mom.org/127.0.0.1#5335
ipset=/.all4mom.org/gfwlist
server=/.allcoin.com/127.0.0.1#5335
ipset=/.allcoin.com/gfwlist
server=/.allconnected.co/127.0.0.1#5335
@ -510,6 +512,8 @@ server=/.anyporn.com/127.0.0.1#5335
ipset=/.anyporn.com/gfwlist
server=/.anysex.com/127.0.0.1#5335
ipset=/.anysex.com/gfwlist
server=/.ao3.org/127.0.0.1#5335
ipset=/.ao3.org/gfwlist
server=/.aobo.com.au/127.0.0.1#5335
ipset=/.aobo.com.au/gfwlist
server=/.aofriend.com/127.0.0.1#5335
@ -550,6 +554,8 @@ server=/.apigee.com/127.0.0.1#5335
ipset=/.apigee.com/gfwlist
server=/.apk-dl.com/127.0.0.1#5335
ipset=/.apk-dl.com/gfwlist
server=/.apkcombo.com/127.0.0.1#5335
ipset=/.apkcombo.com/gfwlist
server=/.apkmirror.com/127.0.0.1#5335
ipset=/.apkmirror.com/gfwlist
server=/.apkplz.com/127.0.0.1#5335
@ -588,8 +594,14 @@ server=/.archive.li/127.0.0.1#5335
ipset=/.archive.li/gfwlist
server=/.archive.org/127.0.0.1#5335
ipset=/.archive.org/gfwlist
server=/.archive.ph/127.0.0.1#5335
ipset=/.archive.ph/gfwlist
server=/.archive.today/127.0.0.1#5335
ipset=/.archive.today/gfwlist
server=/.archiveofourown.com/127.0.0.1#5335
ipset=/.archiveofourown.com/gfwlist
server=/.archiveofourown.org/127.0.0.1#5335
ipset=/.archiveofourown.org/gfwlist
server=/.archives.gov/127.0.0.1#5335
ipset=/.archives.gov/gfwlist
server=/.arctosia.com/127.0.0.1#5335
@ -1286,6 +1298,8 @@ server=/.cafepress.com/127.0.0.1#5335
ipset=/.cafepress.com/gfwlist
server=/.cahr.org.tw/127.0.0.1#5335
ipset=/.cahr.org.tw/gfwlist
server=/.caijinglengyan.com/127.0.0.1#5335
ipset=/.caijinglengyan.com/gfwlist
server=/.calebelston.com/127.0.0.1#5335
ipset=/.calebelston.com/gfwlist
server=/.calgarychinese.ca/127.0.0.1#5335
@ -1302,6 +1316,8 @@ server=/.cam4.sg/127.0.0.1#5335
ipset=/.cam4.sg/gfwlist
server=/.camfrog.com/127.0.0.1#5335
ipset=/.camfrog.com/gfwlist
server=/.campaignforuyghurs.org/127.0.0.1#5335
ipset=/.campaignforuyghurs.org/gfwlist
server=/.cams.com/127.0.0.1#5335
ipset=/.cams.com/gfwlist
server=/.cams.org.sg/127.0.0.1#5335
@ -1754,8 +1770,6 @@ server=/.clipfish.de/127.0.0.1#5335
ipset=/.clipfish.de/gfwlist
server=/.cloakpoint.com/127.0.0.1#5335
ipset=/.cloakpoint.com/gfwlist
server=/.cloud.feedly.com/127.0.0.1#5335
ipset=/.cloud.feedly.com/gfwlist
server=/.cloud.mail.ru/127.0.0.1#5335
ipset=/.cloud.mail.ru/gfwlist
server=/.club1069.com/127.0.0.1#5335
@ -2232,6 +2246,10 @@ server=/.discoins.com/127.0.0.1#5335
ipset=/.discoins.com/gfwlist
server=/.disconnect.me/127.0.0.1#5335
ipset=/.disconnect.me/gfwlist
server=/.discord.com/127.0.0.1#5335
ipset=/.discord.com/gfwlist
server=/.discord.gg/127.0.0.1#5335
ipset=/.discord.gg/gfwlist
server=/.discordapp.com/127.0.0.1#5335
ipset=/.discordapp.com/gfwlist
server=/.discordapp.net/127.0.0.1#5335
@ -2402,6 +2420,8 @@ server=/.dtwang.org/127.0.0.1#5335
ipset=/.dtwang.org/gfwlist
server=/.duanzhihu.com/127.0.0.1#5335
ipset=/.duanzhihu.com/gfwlist
server=/.dubox.com/127.0.0.1#5335
ipset=/.dubox.com/gfwlist
server=/.duck.com/127.0.0.1#5335
ipset=/.duck.com/gfwlist
server=/.duckdns.org/127.0.0.1#5335
@ -2948,6 +2968,8 @@ server=/.fdc89.jp/127.0.0.1#5335
ipset=/.fdc89.jp/gfwlist
server=/.feedburner.com/127.0.0.1#5335
ipset=/.feedburner.com/gfwlist
server=/.feedly.com/127.0.0.1#5335
ipset=/.feedly.com/gfwlist
server=/.feeds.fileforum.com/127.0.0.1#5335
ipset=/.feeds.fileforum.com/gfwlist
server=/.feedx.net/127.0.0.1#5335
@ -3182,6 +3204,8 @@ server=/.freehongkong.org/127.0.0.1#5335
ipset=/.freehongkong.org/gfwlist
server=/.freeilhamtohti.org/127.0.0.1#5335
ipset=/.freeilhamtohti.org/gfwlist
server=/.freekazakhs.org/127.0.0.1#5335
ipset=/.freekazakhs.org/gfwlist
server=/.freekwonpyong.org/127.0.0.1#5335
ipset=/.freekwonpyong.org/gfwlist
server=/.freelotto.com/127.0.0.1#5335
@ -3336,6 +3360,8 @@ server=/.gaeproxy.com/127.0.0.1#5335
ipset=/.gaeproxy.com/gfwlist
server=/.gaforum.org/127.0.0.1#5335
ipset=/.gaforum.org/gfwlist
server=/.gagaoolala.com/127.0.0.1#5335
ipset=/.gagaoolala.com/gfwlist
server=/.galaxymacau.com/127.0.0.1#5335
ipset=/.galaxymacau.com/gfwlist
server=/.galenwu.com/127.0.0.1#5335
@ -3500,6 +3526,12 @@ server=/.gist.github.com/127.0.0.1#5335
ipset=/.gist.github.com/gfwlist
server=/.git.io/127.0.0.1#5335
ipset=/.git.io/gfwlist
server=/.github.io/127.0.0.1#5335
ipset=/.github.io/gfwlist
server=/.githubassets.com/127.0.0.1#5335
ipset=/.githubassets.com/gfwlist
server=/.githubusercontent.com/127.0.0.1#5335
ipset=/.githubusercontent.com/gfwlist
server=/.gizlen.net/127.0.0.1#5335
ipset=/.gizlen.net/gfwlist
server=/.gjczz.com/127.0.0.1#5335
@ -3546,6 +3578,8 @@ server=/.gmozomg.izihost.org/127.0.0.1#5335
ipset=/.gmozomg.izihost.org/gfwlist
server=/.gnci.org.hk/127.0.0.1#5335
ipset=/.gnci.org.hk/gfwlist
server=/.gnews.org/127.0.0.1#5335
ipset=/.gnews.org/gfwlist
server=/.go-pki.com/127.0.0.1#5335
ipset=/.go-pki.com/gfwlist
server=/.go.nesnode.com/127.0.0.1#5335
@ -3874,6 +3908,8 @@ server=/.gtricks.com/127.0.0.1#5335
ipset=/.gtricks.com/gfwlist
server=/.gts-vpn.com/127.0.0.1#5335
ipset=/.gts-vpn.com/gfwlist
server=/.gtv.org/127.0.0.1#5335
ipset=/.gtv.org/gfwlist
server=/.gu-chu-sum.org/127.0.0.1#5335
ipset=/.gu-chu-sum.org/gfwlist
server=/.guaguass.com/127.0.0.1#5335
@ -3952,8 +3988,6 @@ server=/.hacker.org/127.0.0.1#5335
ipset=/.hacker.org/gfwlist
server=/.hackthatphone.net/127.0.0.1#5335
ipset=/.hackthatphone.net/gfwlist
server=/.hahaxixi.github.io/127.0.0.1#5335
ipset=/.hahaxixi.github.io/gfwlist
server=/.hahlo.com/127.0.0.1#5335
ipset=/.hahlo.com/gfwlist
server=/.hakkatv.org.tw/127.0.0.1#5335
@ -3964,8 +3998,6 @@ server=/.hanime.tv/127.0.0.1#5335
ipset=/.hanime.tv/gfwlist
server=/.hanunyi.com/127.0.0.1#5335
ipset=/.hanunyi.com/gfwlist
server=/.haoel.github.io/127.0.0.1#5335
ipset=/.haoel.github.io/gfwlist
server=/.happy-vpn.com/127.0.0.1#5335
ipset=/.happy-vpn.com/gfwlist
server=/.haproxy.org/127.0.0.1#5335
@ -4024,6 +4056,8 @@ server=/.helplinfen.com/127.0.0.1#5335
ipset=/.helplinfen.com/gfwlist
server=/.helpster.de/127.0.0.1#5335
ipset=/.helpster.de/gfwlist
server=/.helpuyghursnow.org/127.0.0.1#5335
ipset=/.helpuyghursnow.org/gfwlist
server=/.helpzhuling.org/127.0.0.1#5335
ipset=/.helpzhuling.org/gfwlist
server=/.hentai.to/127.0.0.1#5335
@ -4158,6 +4192,8 @@ server=/.hkcoc.com/127.0.0.1#5335
ipset=/.hkcoc.com/gfwlist
server=/.hkcoc.weather.com.hk/127.0.0.1#5335
ipset=/.hkcoc.weather.com.hk/gfwlist
server=/.hkctu.org.hk/127.0.0.1#5335
ipset=/.hkctu.org.hk/gfwlist
server=/.hkday.net/127.0.0.1#5335
ipset=/.hkday.net/gfwlist
server=/.hkdf.org/127.0.0.1#5335
@ -4354,6 +4390,8 @@ server=/.huhaitai.com/127.0.0.1#5335
ipset=/.huhaitai.com/gfwlist
server=/.huhamhire.com/127.0.0.1#5335
ipset=/.huhamhire.com/gfwlist
server=/.huhangfei.com/127.0.0.1#5335
ipset=/.huhangfei.com/gfwlist
server=/.huiyi.in/127.0.0.1#5335
ipset=/.huiyi.in/gfwlist
server=/.hulkshare.com/127.0.0.1#5335
@ -4512,6 +4550,8 @@ server=/.ikstar.com/127.0.0.1#5335
ipset=/.ikstar.com/gfwlist
server=/.ikwb.com/127.0.0.1#5335
ipset=/.ikwb.com/gfwlist
server=/.ilhamtohtiinstitute.org/127.0.0.1#5335
ipset=/.ilhamtohtiinstitute.org/gfwlist
server=/.illusionfactory.com/127.0.0.1#5335
ipset=/.illusionfactory.com/gfwlist
server=/.ilove80.be/127.0.0.1#5335
@ -4930,6 +4970,8 @@ server=/.k-doujin.net/127.0.0.1#5335
ipset=/.k-doujin.net/gfwlist
server=/.ka-wai.com/127.0.0.1#5335
ipset=/.ka-wai.com/gfwlist
server=/.kadokawa.co.jp/127.0.0.1#5335
ipset=/.kadokawa.co.jp/gfwlist
server=/.kagyu.org/127.0.0.1#5335
ipset=/.kagyu.org/gfwlist
server=/.kagyumonlam.org/127.0.0.1#5335
@ -5610,6 +5652,8 @@ server=/.mimivv.com/127.0.0.1#5335
ipset=/.mimivv.com/gfwlist
server=/.mindrolling.org/127.0.0.1#5335
ipset=/.mindrolling.org/gfwlist
server=/.mingdemedia.org/127.0.0.1#5335
ipset=/.mingdemedia.org/gfwlist
server=/.minghui-a.org/127.0.0.1#5335
ipset=/.minghui-a.org/gfwlist
server=/.minghui-b.org/127.0.0.1#5335
@ -5798,6 +5842,8 @@ server=/.mthruf.com/127.0.0.1#5335
ipset=/.mthruf.com/gfwlist
server=/.mtw.tl/127.0.0.1#5335
ipset=/.mtw.tl/gfwlist
server=/.mubi.com/127.0.0.1#5335
ipset=/.mubi.com/gfwlist
server=/.muchosucko.com/127.0.0.1#5335
ipset=/.muchosucko.com/gfwlist
server=/.mullvad.net/127.0.0.1#5335
@ -5966,6 +6012,8 @@ server=/.nat.moe/127.0.0.1#5335
ipset=/.nat.moe/gfwlist
server=/.national-lottery.co.uk/127.0.0.1#5335
ipset=/.national-lottery.co.uk/gfwlist
server=/.nationalawakening.org/127.0.0.1#5335
ipset=/.nationalawakening.org/gfwlist
server=/.nationwide.com/127.0.0.1#5335
ipset=/.nationwide.com/gfwlist
server=/.naughtyamerica.com/127.0.0.1#5335
@ -6142,6 +6190,8 @@ server=/.nintendium.com/127.0.0.1#5335
ipset=/.nintendium.com/gfwlist
server=/.ninth.biz/127.0.0.1#5335
ipset=/.ninth.biz/gfwlist
server=/.nitter.net/127.0.0.1#5335
ipset=/.nitter.net/gfwlist
server=/.niu.moe/127.0.0.1#5335
ipset=/.niu.moe/gfwlist
server=/.niusnews.com/127.0.0.1#5335
@ -6430,6 +6480,8 @@ server=/.openid.net/127.0.0.1#5335
ipset=/.openid.net/gfwlist
server=/.openleaks.org/127.0.0.1#5335
ipset=/.openleaks.org/gfwlist
server=/.opensource.google/127.0.0.1#5335
ipset=/.opensource.google/gfwlist
server=/.openvpn.net/127.0.0.1#5335
ipset=/.openvpn.net/gfwlist
server=/.openvpn.org/127.0.0.1#5335
@ -6550,6 +6602,10 @@ server=/.paradisepoker.com/127.0.0.1#5335
ipset=/.paradisepoker.com/gfwlist
server=/.parkansky.com/127.0.0.1#5335
ipset=/.parkansky.com/gfwlist
server=/.parler.com/127.0.0.1#5335
ipset=/.parler.com/gfwlist
server=/.parsevideo.com/127.0.0.1#5335
ipset=/.parsevideo.com/gfwlist
server=/.partycasino.com/127.0.0.1#5335
ipset=/.partycasino.com/gfwlist
server=/.partypoker.com/127.0.0.1#5335
@ -6920,6 +6976,8 @@ server=/.psblog.name/127.0.0.1#5335
ipset=/.psblog.name/gfwlist
server=/.pscp.tv/127.0.0.1#5335
ipset=/.pscp.tv/gfwlist
server=/.pshvpn.com/127.0.0.1#5335
ipset=/.pshvpn.com/gfwlist
server=/.psiphon.ca/127.0.0.1#5335
ipset=/.psiphon.ca/gfwlist
server=/.psiphon.civisec.org/127.0.0.1#5335
@ -7042,6 +7100,8 @@ server=/.radicalparty.org/127.0.0.1#5335
ipset=/.radicalparty.org/gfwlist
server=/.radiko.jp/127.0.0.1#5335
ipset=/.radiko.jp/gfwlist
server=/.radio.garden/127.0.0.1#5335
ipset=/.radio.garden/gfwlist
server=/.radioaustralia.net.au/127.0.0.1#5335
ipset=/.radioaustralia.net.au/gfwlist
server=/.radiohilight.net/127.0.0.1#5335
@ -7084,8 +7144,6 @@ server=/.raremovie.cc/127.0.0.1#5335
ipset=/.raremovie.cc/gfwlist
server=/.raremovie.net/127.0.0.1#5335
ipset=/.raremovie.net/gfwlist
server=/.raw.githubusercontent.com/127.0.0.1#5335
ipset=/.raw.githubusercontent.com/gfwlist
server=/.rawgit.com/127.0.0.1#5335
ipset=/.rawgit.com/gfwlist
server=/.rawgithub.com/127.0.0.1#5335
@ -7122,6 +7180,8 @@ server=/.realraptalk.com/127.0.0.1#5335
ipset=/.realraptalk.com/gfwlist
server=/.realsexpass.com/127.0.0.1#5335
ipset=/.realsexpass.com/gfwlist
server=/.reason.com/127.0.0.1#5335
ipset=/.reason.com/gfwlist
server=/.rebatesrule.net/127.0.0.1#5335
ipset=/.rebatesrule.net/gfwlist
server=/.recordhistory.org/127.0.0.1#5335
@ -7172,6 +7232,8 @@ server=/.renyurenquan.org/127.0.0.1#5335
ipset=/.renyurenquan.org/gfwlist
server=/.resilio.com/127.0.0.1#5335
ipset=/.resilio.com/gfwlist
server=/.resistchina.org/127.0.0.1#5335
ipset=/.resistchina.org/gfwlist
server=/.retweeteffect.com/127.0.0.1#5335
ipset=/.retweeteffect.com/gfwlist
server=/.retweetist.com/127.0.0.1#5335
@ -7200,8 +7262,6 @@ server=/.rferl.org/127.0.0.1#5335
ipset=/.rferl.org/gfwlist
server=/.rfi.fr/127.0.0.1#5335
ipset=/.rfi.fr/gfwlist
server=/.rg3.github.io/127.0.0.1#5335
ipset=/.rg3.github.io/gfwlist
server=/.rightbtc.com/127.0.0.1#5335
ipset=/.rightbtc.com/gfwlist
server=/.rigpa.org/127.0.0.1#5335
@ -7374,6 +7434,8 @@ server=/.scmpchinese.com/127.0.0.1#5335
ipset=/.scmpchinese.com/gfwlist
server=/.scramble.io/127.0.0.1#5335
ipset=/.scramble.io/gfwlist
server=/.scratch.mit.edu/127.0.0.1#5335
ipset=/.scratch.mit.edu/gfwlist
server=/.scribd.com/127.0.0.1#5335
ipset=/.scribd.com/gfwlist
server=/.scriptspot.com/127.0.0.1#5335
@ -7556,6 +7618,8 @@ server=/.shooshtime.com/127.0.0.1#5335
ipset=/.shooshtime.com/gfwlist
server=/.shop2000.com.tw/127.0.0.1#5335
ipset=/.shop2000.com.tw/gfwlist
server=/.shopee.tw/127.0.0.1#5335
ipset=/.shopee.tw/gfwlist
server=/.shopping.com/127.0.0.1#5335
ipset=/.shopping.com/gfwlist
server=/.showbiz.omy.sg/127.0.0.1#5335
@ -7582,8 +7646,6 @@ server=/.sijihuisuo.club/127.0.0.1#5335
ipset=/.sijihuisuo.club/gfwlist
server=/.sijihuisuo.com/127.0.0.1#5335
ipset=/.sijihuisuo.com/gfwlist
server=/.sikaozhe1997.github.io/127.0.0.1#5335
ipset=/.sikaozhe1997.github.io/gfwlist
server=/.silkbook.com/127.0.0.1#5335
ipset=/.silkbook.com/gfwlist
server=/.simbolostwitter.com/127.0.0.1#5335
@ -7716,8 +7778,6 @@ server=/.socrec.org/127.0.0.1#5335
ipset=/.socrec.org/gfwlist
server=/.sod.co.jp/127.0.0.1#5335
ipset=/.sod.co.jp/gfwlist
server=/.sodatea.github.io/127.0.0.1#5335
ipset=/.sodatea.github.io/gfwlist
server=/.softether-download.com/127.0.0.1#5335
ipset=/.softether-download.com/gfwlist
server=/.softether.co.jp/127.0.0.1#5335
@ -7886,6 +7946,8 @@ server=/.stage64.hk/127.0.0.1#5335
ipset=/.stage64.hk/gfwlist
server=/.standupfortibet.org/127.0.0.1#5335
ipset=/.standupfortibet.org/gfwlist
server=/.standwithhk.org/127.0.0.1#5335
ipset=/.standwithhk.org/gfwlist
server=/.starfishfx.com/127.0.0.1#5335
ipset=/.starfishfx.com/gfwlist
server=/.starp2p.com/127.0.0.1#5335
@ -8232,6 +8294,8 @@ server=/.teensinasia.com/127.0.0.1#5335
ipset=/.teensinasia.com/gfwlist
server=/.telecomspace.com/127.0.0.1#5335
ipset=/.telecomspace.com/gfwlist
server=/.telegra.ph/127.0.0.1#5335
ipset=/.telegra.ph/gfwlist
server=/.telegram.dog/127.0.0.1#5335
ipset=/.telegram.dog/gfwlist
server=/.telegram.me/127.0.0.1#5335
@ -8252,8 +8316,6 @@ server=/.tensorflow.org/127.0.0.1#5335
ipset=/.tensorflow.org/gfwlist
server=/.tenzinpalmo.com/127.0.0.1#5335
ipset=/.tenzinpalmo.com/gfwlist
server=/.terminus2049.github.io/127.0.0.1#5335
ipset=/.terminus2049.github.io/gfwlist
server=/.tew.org/127.0.0.1#5335
ipset=/.tew.org/gfwlist
server=/.textnow.me/127.0.0.1#5335
@ -8380,8 +8442,6 @@ server=/.tibet-foundation.org/127.0.0.1#5335
ipset=/.tibet-foundation.org/gfwlist
server=/.tibet-house-trust.co.uk/127.0.0.1#5335
ipset=/.tibet-house-trust.co.uk/gfwlist
server=/.tibet-info.net/127.0.0.1#5335
ipset=/.tibet-info.net/gfwlist
server=/.tibet-initiative.de/127.0.0.1#5335
ipset=/.tibet-initiative.de/gfwlist
server=/.tibet-munich.de/127.0.0.1#5335
@ -8660,8 +8720,6 @@ server=/.totalvpn.com/127.0.0.1#5335
ipset=/.totalvpn.com/gfwlist
server=/.toutiaoabc.com/127.0.0.1#5335
ipset=/.toutiaoabc.com/gfwlist
server=/.toutyrater.github.io/127.0.0.1#5335
ipset=/.toutyrater.github.io/gfwlist
server=/.towngain.com/127.0.0.1#5335
ipset=/.towngain.com/gfwlist
server=/.toypark.in/127.0.0.1#5335
@ -8802,6 +8860,8 @@ server=/.turbohide.com/127.0.0.1#5335
ipset=/.turbohide.com/gfwlist
server=/.turbotwitter.com/127.0.0.1#5335
ipset=/.turbotwitter.com/gfwlist
server=/.turkistantimes.com/127.0.0.1#5335
ipset=/.turkistantimes.com/gfwlist
server=/.turntable.fm/127.0.0.1#5335
ipset=/.turntable.fm/gfwlist
server=/.tushycash.com/127.0.0.1#5335
@ -9162,6 +9222,8 @@ server=/.upornia.com/127.0.0.1#5335
ipset=/.upornia.com/gfwlist
server=/.uproxy.org/127.0.0.1#5335
ipset=/.uproxy.org/gfwlist
server=/.uptodown.com/127.0.0.1#5335
ipset=/.uptodown.com/gfwlist
server=/.upwill.org/127.0.0.1#5335
ipset=/.upwill.org/gfwlist
server=/.ur7s.com/127.0.0.1#5335
@ -9744,6 +9806,8 @@ server=/.winning11.com/127.0.0.1#5335
ipset=/.winning11.com/gfwlist
server=/.winwhispers.info/127.0.0.1#5335
ipset=/.winwhispers.info/gfwlist
server=/.wionews.com/127.0.0.1#5335
ipset=/.wionews.com/gfwlist
server=/.wire.com/127.0.0.1#5335
ipset=/.wire.com/gfwlist
server=/.wiredbytes.com/127.0.0.1#5335
@ -9838,8 +9902,6 @@ server=/.wretch.cc/127.0.0.1#5335
ipset=/.wretch.cc/gfwlist
server=/.writer.zoho.com/127.0.0.1#5335
ipset=/.writer.zoho.com/gfwlist
server=/.wsgzao.github.io/127.0.0.1#5335
ipset=/.wsgzao.github.io/gfwlist
server=/.wsj.com/127.0.0.1#5335
ipset=/.wsj.com/gfwlist
server=/.wsj.net/127.0.0.1#5335

View File

@ -5,7 +5,7 @@
-- @author Jerryk <jerrykuku@qq.com>
------------------------------------------------
local _M = {}
local icount = 0
-- Get country iso code with remark or host
-- Return String:iso_code
function _M.get_flag(remark, host)
@ -158,5 +158,6 @@ function _M.wget(url)
return _M.trim(stdout)
end
return _M

View File

@ -43,7 +43,7 @@ else
end
log('正在更新【国内IP段】数据库')
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 2>/dev/null"
sret = luci.sys.call(refresh_cmd)
icount = luci.sys.exec('cat /tmp/china_ssr.txt | wc -l')
if sret == 0 then

View File

@ -648,6 +648,7 @@ footer.mobile-hide {
padding: 0 !important;
background-color: transparent !important;
color: #fff !important;
margin-bottom: 0.5em !important;
}
.modals h3 {
@ -668,6 +669,7 @@ footer.mobile-hide {
background: transparent;
color: #FFFFFF;
outline: none;
margin-top: 10px;
padding-left: 3px;
padding-right: 22px;
overflow: hidden