update-11.10
This commit is contained in:
parent
6657472250
commit
0856a74fe2
|
@ -320,7 +320,7 @@ end
|
|||
function action_confirm()
|
||||
local data = docker:read_status()
|
||||
if data then
|
||||
data = data:gsub("\n","<br>"):gsub(" "," ")
|
||||
data = data:gsub("\n","<br />"):gsub(" "," ")
|
||||
code = 202
|
||||
msg = data
|
||||
else
|
||||
|
|
|
@ -30,7 +30,7 @@ local get_ports = function(d)
|
|||
|
||||
if d.HostConfig and d.HostConfig.PortBindings then
|
||||
for inter, out in pairs(d.HostConfig.PortBindings) do
|
||||
data = (data and (data .. "<br>") or "") .. out[1]["HostPort"] .. ":" .. inter
|
||||
data = (data and (data .. "<br />") or "") .. out[1]["HostPort"] .. ":" .. inter
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -42,7 +42,7 @@ local get_env = function(d)
|
|||
|
||||
if d.Config and d.Config.Env then
|
||||
for _,v in ipairs(d.Config.Env) do
|
||||
data = (data and (data .. "<br>") or "") .. v
|
||||
data = (data and (data .. "<br />") or "") .. v
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -83,7 +83,7 @@ local get_mounts = function(d)
|
|||
v_dest = v_dest .."/".. v_dest_d
|
||||
end
|
||||
end
|
||||
data = (data and (data .. "<br>") or "") .. v_sorce .. ":" .. v["Destination"] .. (v["Mode"] ~= "" and (":" .. v["Mode"]) or "")
|
||||
data = (data and (data .. "<br />") or "") .. v_sorce .. ":" .. v["Destination"] .. (v["Mode"] ~= "" and (":" .. v["Mode"]) or "")
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -95,7 +95,7 @@ local get_device = function(d)
|
|||
|
||||
if d.HostConfig and d.HostConfig.Devices then
|
||||
for _,v in ipairs(d.HostConfig.Devices) do
|
||||
data = (data and (data .. "<br>") or "") .. v["PathOnHost"] .. ":" .. v["PathInContainer"] .. (v["CgroupPermissions"] ~= "" and (":" .. v["CgroupPermissions"]) or "")
|
||||
data = (data and (data .. "<br />") or "") .. v["PathOnHost"] .. ":" .. v["PathInContainer"] .. (v["CgroupPermissions"] ~= "" and (":" .. v["CgroupPermissions"]) or "")
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -107,7 +107,7 @@ local get_links = function(d)
|
|||
|
||||
if d.HostConfig and d.HostConfig.Links then
|
||||
for _,v in ipairs(d.HostConfig.Links) do
|
||||
data = (data and (data .. "<br>") or "") .. v
|
||||
data = (data and (data .. "<br />") or "") .. v
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -119,7 +119,7 @@ local get_tmpfs = function(d)
|
|||
|
||||
if d.HostConfig and d.HostConfig.Tmpfs then
|
||||
for k, v in pairs(d.HostConfig.Tmpfs) do
|
||||
data = (data and (data .. "<br>") or "") .. k .. (v~="" and ":" or "")..v
|
||||
data = (data and (data .. "<br />") or "") .. k .. (v~="" and ":" or "")..v
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -131,7 +131,7 @@ local get_dns = function(d)
|
|||
|
||||
if d.HostConfig and d.HostConfig.Dns then
|
||||
for _, v in ipairs(d.HostConfig.Dns) do
|
||||
data = (data and (data .. "<br>") or "") .. v
|
||||
data = (data and (data .. "<br />") or "") .. v
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -143,7 +143,7 @@ local get_sysctl = function(d)
|
|||
|
||||
if d.HostConfig and d.HostConfig.Sysctls then
|
||||
for k, v in pairs(d.HostConfig.Sysctls) do
|
||||
data = (data and (data .. "<br>") or "") .. k..":"..v
|
||||
data = (data and (data .. "<br />") or "") .. k..":"..v
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -196,7 +196,7 @@ m.redirect = luci.dispatcher.build_url("admin/docker/containers")
|
|||
s = m:section(SimpleSection)
|
||||
s.template = "dockerman/apply_widget"
|
||||
s.err=docker:read_status()
|
||||
s.err=s.err and s.err:gsub("\n","<br>"):gsub(" "," ")
|
||||
s.err=s.err and s.err:gsub("\n","<br />"):gsub(" "," ")
|
||||
if s.err then
|
||||
docker:clear_status()
|
||||
end
|
||||
|
@ -302,7 +302,7 @@ if action == "info" then
|
|||
},
|
||||
["03image"] = {
|
||||
_key = translate("Image"),
|
||||
_value = container_info.Config.Image .. "<br>" .. container_info.Image
|
||||
_value = container_info.Config.Image .. "<br />" .. container_info.Image
|
||||
},
|
||||
["04status"] = {
|
||||
_key = translate("Status"),
|
||||
|
|
|
@ -51,7 +51,7 @@ function get_containers()
|
|||
|
||||
if v.Status:find("^Up") then
|
||||
data[index]["_name"] = "<font color='green'>"..v.Names[1]:sub(2).."</font>"
|
||||
data[index]["_status"] = "<a href='"..luci.dispatcher.build_url("admin/docker/container/"..v.Id).."/stats'><font color='green'>".. data[index]["_status"] .. "</font>" .. "<br><font color='#9f9f9f' class='container_cpu_status'></font><br><font color='#9f9f9f' class='container_mem_status'></font><br><font color='#9f9f9f' class='container_network_status'></font></a>"
|
||||
data[index]["_status"] = "<a href='"..luci.dispatcher.build_url("admin/docker/container/"..v.Id).."/stats'><font color='green'>".. data[index]["_status"] .. "</font>" .. "<br /><font color='#9f9f9f' class='container_cpu_status'></font><br /><font color='#9f9f9f' class='container_mem_status'></font><br /><font color='#9f9f9f' class='container_network_status'></font></a>"
|
||||
else
|
||||
data[index]["_name"] = "<font color='red'>"..v.Names[1]:sub(2).."</font>"
|
||||
data[index]["_status"] = '<font class="container_not_running" color="red">'.. data[index]["_status"] .. "</font>"
|
||||
|
@ -89,9 +89,9 @@ function get_containers()
|
|||
data[index]["_image"] = iv.RepoTags and iv.RepoTags[1] or (iv.RepoDigests[1]:gsub("(.-)@.+", "%1") .. ":<none>")
|
||||
end
|
||||
end
|
||||
data[index]["_id_name"] = '<a href='..luci.dispatcher.build_url("admin/docker/container/"..v.Id)..' class="dockerman_link" title="'..translate("Container detail")..'">'.. data[index]["_name"] .. "<br><font color='#9f9f9f'>ID: " .. data[index]["_id"]
|
||||
.. "</font></a><br>Image: " .. (data[index]["_image"] or "<none>")
|
||||
.. "<br><font color='#9f9f9f' class='container_size_".. v.Id .."'></font>"
|
||||
data[index]["_id_name"] = '<a href='..luci.dispatcher.build_url("admin/docker/container/"..v.Id)..' class="dockerman_link" title="'..translate("Container detail")..'">'.. data[index]["_name"] .. "<br /><font color='#9f9f9f'>ID: " .. data[index]["_id"]
|
||||
.. "</font></a><br />Image: " .. (data[index]["_image"] or "<none>")
|
||||
.. "<br /><font color='#9f9f9f' class='container_size_".. v.Id .."'></font>"
|
||||
|
||||
if type(v.Mounts) == "table" and next(v.Mounts) then
|
||||
for _, v2 in pairs(v.Mounts) do
|
||||
|
@ -113,7 +113,7 @@ function get_containers()
|
|||
v_dest = v_dest .."/".. v_dest_d
|
||||
end
|
||||
end
|
||||
data[index]["_mounts"] = (data[index]["_mounts"] and (data[index]["_mounts"] .. "<br>") or "") .. '<span title="'.. v2.Source.. "→" .. v2.Destination .. '" ><a href="'..luci.dispatcher.build_url("admin/docker/container/"..v.Id)..'/file?path='..v2["Destination"]..'">' .. v_sorce .. "→" .. v_dest..'</a></span>'
|
||||
data[index]["_mounts"] = (data[index]["_mounts"] and (data[index]["_mounts"] .. "<br />") or "") .. '<span title="'.. v2.Source.. "→" .. v2.Destination .. '" ><a href="'..luci.dispatcher.build_url("admin/docker/container/"..v.Id)..'/file?path='..v2["Destination"]..'">' .. v_sorce .. "→" .. v_dest..'</a></span>'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -136,7 +136,7 @@ m:append(Template("dockerman/containers_running_stats"))
|
|||
s = m:section(SimpleSection)
|
||||
s.template = "dockerman/apply_widget"
|
||||
s.err=docker:read_status()
|
||||
s.err=s.err and s.err:gsub("\n","<br>"):gsub(" "," ")
|
||||
s.err=s.err and s.err:gsub("\n","<br />"):gsub(" "," ")
|
||||
if s.err then
|
||||
docker:clear_status()
|
||||
end
|
||||
|
|
|
@ -36,7 +36,7 @@ function get_images()
|
|||
|
||||
if v.RepoTags and next(v.RepoTags)~=nil then
|
||||
for i, v1 in ipairs(v.RepoTags) do
|
||||
data[index]["_tags"] =(data[index]["_tags"] and ( data[index]["_tags"] .. "<br>" )or "") .. ((v1:match("<none>") or (#v.RepoTags == 1)) and v1 or ('<a href="javascript:un_tag(\''..v1..'\')" class="dockerman_link" title="'..translate("Remove tag")..'" >' .. v1 .. '</a>'))
|
||||
data[index]["_tags"] =(data[index]["_tags"] and ( data[index]["_tags"] .. "<br />" )or "") .. ((v1:match("<none>") or (#v.RepoTags == 1)) and v1 or ('<a href="javascript:un_tag(\''..v1..'\')" class="dockerman_link" title="'..translate("Remove tag")..'" >' .. v1 .. '</a>'))
|
||||
|
||||
if not data[index]["tag"] then
|
||||
data[index]["tag"] = v1
|
||||
|
@ -153,7 +153,7 @@ local remove_action = function(force)
|
|||
|
||||
for k in pairs(image_list) do
|
||||
if image_list[k]._selected == 1 then
|
||||
image_selected[#image_selected+1] = (image_list[k]["_tags"]:match("<br>") or image_list[k]["_tags"]:match("<none>")) and image_list[k].id or image_list[k].tag
|
||||
image_selected[#image_selected+1] = (image_list[k]["_tags"]:match("<br />") or image_list[k]["_tags"]:match("<none>")) and image_list[k].id or image_list[k].tag
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -192,7 +192,7 @@ end
|
|||
s = m:section(SimpleSection)
|
||||
s.template = "dockerman/apply_widget"
|
||||
s.err = docker:read_status()
|
||||
s.err = s.err and s.err:gsub("\n","<br>"):gsub(" "," ")
|
||||
s.err = s.err and s.err:gsub("\n","<br />"):gsub(" "," ")
|
||||
if s.err then
|
||||
docker:clear_status()
|
||||
end
|
||||
|
|
|
@ -90,7 +90,7 @@ o = s:option(DummyValue, "_gateway", translate("Gateway"))
|
|||
s = m:section(SimpleSection)
|
||||
s.template = "dockerman/apply_widget"
|
||||
s.err = docker:read_status()
|
||||
s.err = s.err and s.err:gsub("\n","<br>"):gsub(" "," ")
|
||||
s.err = s.err and s.err:gsub("\n","<br />"):gsub(" "," ")
|
||||
if s.err then
|
||||
docker:clear_status()
|
||||
end
|
||||
|
|
|
@ -451,7 +451,7 @@ end
|
|||
s = m:section(SimpleSection)
|
||||
s.template = "dockerman/apply_widget"
|
||||
s.err=docker:read_status()
|
||||
s.err=s.err and s.err:gsub("\n","<br>"):gsub(" "," ")
|
||||
s.err=s.err and s.err:gsub("\n","<br />"):gsub(" "," ")
|
||||
if s.err then
|
||||
docker:clear_status()
|
||||
end
|
||||
|
|
|
@ -23,7 +23,7 @@ end
|
|||
s = m:section(SimpleSection)
|
||||
s.template = "dockerman/apply_widget"
|
||||
s.err=docker:read_status()
|
||||
s.err=s.err and s.err:gsub("\n","<br>"):gsub(" "," ")
|
||||
s.err=s.err and s.err:gsub("\n","<br />"):gsub(" "," ")
|
||||
if s.err then
|
||||
docker:clear_status()
|
||||
end
|
||||
|
|
|
@ -40,7 +40,7 @@ if nixio.fs.access("/usr/bin/dockerd") and not uci:get_bool("dockerd", "dockerma
|
|||
s = m:section(SimpleSection)
|
||||
s.template = "dockerman/apply_widget"
|
||||
s.err=docker:read_status()
|
||||
s.err=s.err and s.err:gsub("\n","<br>"):gsub(" "," ")
|
||||
s.err=s.err and s.err:gsub("\n","<br>"):gsub(" "," ")
|
||||
if s.err then
|
||||
docker:clear_status()
|
||||
end
|
||||
|
|
|
@ -93,7 +93,7 @@ o = s:option(DummyValue, "_created", translate("Created"))
|
|||
s = m:section(SimpleSection)
|
||||
s.template = "dockerman/apply_widget"
|
||||
s.err=docker:read_status()
|
||||
s.err=s.err and s.err:gsub("\n","<br>"):gsub(" "," ")
|
||||
s.err=s.err and s.err:gsub("\n","<br />"):gsub(" "," ")
|
||||
if s.err then
|
||||
docker:clear_status()
|
||||
end
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<br>
|
||||
<br />
|
||||
<ul class="cbi-tabmenu">
|
||||
<li id="cbi-tab-container_info"><a id="a-cbi-tab-container_info" href=""><%:Info%></a></li>
|
||||
<li id="cbi-tab-container_resources"><a id="a-cbi-tab-container_resources" href=""><%:Resources%></a></li>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<input type="text" class="cbi-input-text" name="isrc" placeholder="http://host/image.tar" id="isrc" />
|
||||
<input type="text" class="cbi-input-text" name="itag" placeholder="repository:tag" id="itag" />
|
||||
<div style="display: inline-block;">
|
||||
<input type="button"" class="btn cbi-button cbi-button-add" id="btnimport" name="import" value="<%:Import%>" <% if self.disable then %>disabled <% end %>/>
|
||||
<input type="button"" class="btn cbi-button cbi-button-add" id="btnimport" name="import" value="<%:Import%>" <% if self.disable then %>disabled <% end %> />
|
||||
<input type="file" id="file_import" style="visibility:hidden; position: absolute;top: 0px; left: 0px;" />
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div style="display: inline-block;">
|
||||
<input type="button"" class="btn cbi-button cbi-button-add" id="btnload" name="load" value="<%:Load%>" <% if self.disable then %>disabled <% end %>/>
|
||||
<input type="button"" class="btn cbi-button cbi-button-add" id="btnload" name="load" value="<%:Load%>" <% if self.disable then %>disabled <% end %> />
|
||||
<input type="file" id="file_load" style="visibility:hidden; position: absolute;top: 0px; left: 0px;" accept="application/x-tar" />
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
}
|
||||
|
||||
function show_reslov_dialog() {
|
||||
document.getElementById('dialog_reslov') || document.body.insertAdjacentHTML("beforeend", '<div id="dialog_reslov"><div class="dialog_box"><div class="dialog_line"></div><div class="dialog_line"><span><%:Plese input <docker create/run> command line:%></span><br><span id="cmd-line-status"></span></div><div class="dialog_line"><textarea class="cbi-input-textarea" id="dialog_reslov_text" style="width: 100%; height:100%;" rows="15" onkeyup="clear_text()" placeholder="docker run -d alpine sh"></textarea></div><div class="dialog_line" style="text-align: right;"><input type="button" class="btn cbi-button cbi-button-apply" type="submit" value="<%:Submit%>" onclick="reslov_container()"/> <input type="button" class="btn cbi-button cbi-button-reset" type="reset" value="<%:Cancel%>" onclick="close_reslov_dialog()" /></div><div class="dialog_line"></div></div></div>')
|
||||
document.getElementById('dialog_reslov') || document.body.insertAdjacentHTML("beforeend", '<div id="dialog_reslov"><div class="dialog_box"><div class="dialog_line"></div><div class="dialog_line"><span><%:Plese input <docker create/run> command line:%></span><br /><span id="cmd-line-status"></span></div><div class="dialog_line"><textarea class="cbi-input-textarea" id="dialog_reslov_text" style="width: 100%; height:100%;" rows="15" onkeyup="clear_text()" placeholder="docker run -d alpine sh"></textarea></div><div class="dialog_line" style="text-align: right;"><input type="button" class="btn cbi-button cbi-button-apply" type="submit" value="<%:Submit%>" onclick="reslov_container()" /> <input type="button" class="btn cbi-button cbi-button-reset" type="reset" value="<%:Cancel%>" onclick="close_reslov_dialog()" /></div><div class="dialog_line"></div></div></div>')
|
||||
document.body.classList.add('dialog-reslov-active')
|
||||
let s = document.getElementById('cmd-line-status')
|
||||
s.innerHTML = ""
|
||||
|
|
|
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
|||
|
||||
PKG_NAME:=luci-app-godproxy
|
||||
PKG_VERSION:=3.8.5
|
||||
PKG_RELEASE:=3-20211108
|
||||
PKG_RELEASE:=3-20211109
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
|
@ -28,8 +28,6 @@ define Package/luci-app-godproxy/install
|
|||
cp -pR ./luasrc/* $(1)/usr/lib/lua/luci
|
||||
$(INSTALL_DIR) $(1)/
|
||||
cp -pR ./root/* $(1)/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n
|
||||
po2lmo ./po/zh-cn/koolproxy.po $(1)/usr/lib/lua/luci/i18n/koolproxy.zh-cn.lmo
|
||||
|
||||
ifeq ($(ARCH),aarch64)
|
||||
$(INSTALL_BIN) ./bin/aarch64 $(1)/usr/share/koolproxy/koolproxy
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
## 更新:2021年11月9日:
|
||||
1、整理 Luci 界面。
|
||||
|
||||
2、(可能)修复 CPU 占用过高问题。
|
||||
|
||||
## 更新:2021年11月8日:
|
||||
1、优化部分规则+规则地址变更。
|
||||
|
||||
## 更新:2021年11月5日:
|
||||
1、感谢 [Beginner-Go](https://github.com/Beginner-Go) 大佬提供最近几次修复.
|
||||
1、已经修复开启视频规则导致软件无法运行问题。主要原因是猴子大佬的规则内容清空了。直接在后台重新更新规则即可。
|
||||
|
||||
2、已经修复开启视频规则导致软件无法运行问题。主要原因是猴子大佬的规则内容清空了。直接在后台重新更新规则即可。
|
||||
|
||||
3、修复anti-ad获取版本问题。
|
||||
2、修复anti-ad获取版本问题。
|
||||
|
||||
## 更新:2021年3月23日:
|
||||
感谢 [maple's sky](https://github.com/maplesky) 大佬提供技术支持,修复状态栏不动态问题。
|
||||
|
|
|
@ -4,15 +4,26 @@ function index()
|
|||
if not nixio.fs.access("/etc/config/koolproxy") then
|
||||
return
|
||||
end
|
||||
|
||||
entry({"admin","services","koolproxy"},cbi("koolproxy/global"),_("KoolproxyR Plus+"),1).dependent=true
|
||||
entry({"admin","services","koolproxy","rss_rule"},cbi("koolproxy/rss_rule"), nil).leaf=true
|
||||
entry({"admin","services","koolproxy","status"},call("act_status")).leaf=true
|
||||
|
||||
entry({"admin", "services", "koolproxy"}, alias("admin", "services", "koolproxy", "basic"), _("GodProxy 滤广告"), 1).dependent = true
|
||||
entry({"admin", "services", "koolproxy", "basic"}, cbi("koolproxy/basic"), _("基本设置"), 1).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "control"}, cbi("koolproxy/control"), _("访问控制"), 2).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "add_rule"}, cbi("koolproxy/add_rule"), _("规则订阅"), 3).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "cert"}, cbi("koolproxy/cert"), _("证书管理"), 4).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "white_list"}, cbi("koolproxy/white_list"), _("网站白名单设置"), 5).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "black_list"}, cbi("koolproxy/black_list"), _("网站黑名单设置"), 6).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "ip_white_list"}, cbi("koolproxy/ip_white_list"), _("IP白名单设置"), 7).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "ip_black_list"}, cbi("koolproxy/ip_black_list"), _("IP黑名单设置"), 8).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "custom_rule"}, cbi("koolproxy/custom_rule"), _("自定义规则"), 9).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "update_log"}, cbi("koolproxy/update_log"), _("更新日志"), 10).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "tips"}, cbi("koolproxy/tips"), _("帮助支持"), 11).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "rss_rule"}, cbi("koolproxy/rss_rule"), nil).leaf = true
|
||||
entry({"admin", "services", "koolproxy", "status"}, call("act_status")).leaf = true
|
||||
end
|
||||
|
||||
function act_status()
|
||||
local e={}
|
||||
e.running=luci.sys.call("pidof koolproxy >/dev/null")==0
|
||||
local e = {}
|
||||
e.running = luci.sys.call("pidof koolproxy >/dev/null") == 0
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(e)
|
||||
end
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection,"rss_rule", translate("GodProxy 规则订阅"))
|
||||
t.description = translate("请确保订阅规则的兼容性")
|
||||
t.anonymous = true
|
||||
t.addremove = true
|
||||
t.sortable = true
|
||||
t.template = "cbi/tblsection"
|
||||
t.extedit = luci.dispatcher.build_url("admin/services/koolproxy/rss_rule/%s")
|
||||
|
||||
e = t:option(Flag, "load", translate("启用"))
|
||||
e.rmempty = false
|
||||
e.default = 0
|
||||
|
||||
e = t:option(DummyValue, "name", translate("规则名称"))
|
||||
function e.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or translate("None")
|
||||
end
|
||||
|
||||
e = t:option(DummyValue,"url", translate("规则地址"))
|
||||
function e.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or translate("None")
|
||||
end
|
||||
|
||||
t.create = function(...)
|
||||
local sid = TypedSection.create(...)
|
||||
if sid then
|
||||
luci.http.redirect(t.extedit % sid)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
e = t:option(DummyValue, "time", translate("更新时间"))
|
||||
|
||||
function Download()
|
||||
local t,e
|
||||
t = nixio.open("/tmp/upload/koolproxyca.tar.gz","r")
|
||||
luci.http.header('Content-Disposition','attachment; filename="koolproxyCA.tar.gz"')
|
||||
luci.http.prepare_content("application/octet-stream")
|
||||
while true do
|
||||
e = t:read(nixio.const.buffersize)
|
||||
if(not e)or(#e==0)then
|
||||
break
|
||||
else
|
||||
luci.http.write(e)
|
||||
end
|
||||
end
|
||||
t:close()
|
||||
luci.http.close()
|
||||
end
|
||||
|
||||
local t,e
|
||||
t = "/tmp/upload/"
|
||||
nixio.fs.mkdir(t)
|
||||
luci.http.setfilehandler(
|
||||
function(o,a,i)
|
||||
if not e then
|
||||
if not o then return end
|
||||
e = nixio.open(t..o.file,"w")
|
||||
if not e then
|
||||
return
|
||||
end
|
||||
end
|
||||
if a and e then
|
||||
e:write(a)
|
||||
end
|
||||
if i and e then
|
||||
e:close()
|
||||
e = nil
|
||||
luci.sys.call("/usr/share/koolproxy/camanagement restore 2>&1 >/dev/null")
|
||||
end
|
||||
end)
|
||||
|
||||
return o
|
|
@ -0,0 +1,120 @@
|
|||
-- Copyright 2018 Nick Peng (pymumu@gmail.com)
|
||||
|
||||
require ("nixio.fs")
|
||||
require ("luci.http")
|
||||
require ("luci.dispatcher")
|
||||
require ("nixio.fs")
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local sys = require "luci.sys"
|
||||
local http = require "luci.http"
|
||||
|
||||
local o,t,e
|
||||
local a = luci.sys.exec("head -3 /usr/share/koolproxy/data/rules/koolproxy.txt | grep rules | awk -F' ' '{print $3,$4}'")
|
||||
local b = luci.sys.exec("head -4 /usr/share/koolproxy/data/rules/koolproxy.txt | grep video | awk -F' ' '{print $3,$4}'")
|
||||
local c = luci.sys.exec("head -3 /usr/share/koolproxy/data/rules/daily.txt | grep rules | awk -F' ' '{print $3,$4}'")
|
||||
local s = luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/ABP.txt | wc -l")
|
||||
local m = luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/mv.txt | wc -l")
|
||||
local u = luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/fanboy.txt | wc -l")
|
||||
local p = luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/yhosts.txt | wc -l")
|
||||
local h = luci.sys.exec("grep -v '^!' /usr/share/koolproxy/data/rules/user.txt | wc -l")
|
||||
local l = luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/koolproxy.txt | wc -l")
|
||||
local q = luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/daily.txt | wc -l")
|
||||
local f = luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/anti-ad.txt | wc -l")
|
||||
local i = luci.sys.exec("cat /usr/share/koolproxy/dnsmasq.adblock | wc -l")
|
||||
|
||||
o = Map("koolproxy")
|
||||
o.title = translate("GodProxy 滤广告")
|
||||
o.description = translate("GodProxy是基于KoolProxyR Plus重新整理的能识别adblock规则的免费开源软件,追求体验更快、更清洁的网络,屏蔽烦人的广告!")
|
||||
|
||||
o:section(SimpleSection).template = "koolproxy/koolproxy_status"
|
||||
|
||||
t = o:section(TypedSection, "global")
|
||||
t.anonymous = true
|
||||
|
||||
e = t:option(Flag, "enabled", translate("启用"))
|
||||
e.rmempty = false
|
||||
e.default = 0
|
||||
|
||||
e = t:option(Value, "startup_delay", translate("启动延迟"))
|
||||
e:value(0, translate("不启用"))
|
||||
for _, v in ipairs({5, 10, 15, 25, 40, 60}) do
|
||||
e:value(v, translate("%u 秒") %{v})
|
||||
end
|
||||
e.datatype = "uinteger"
|
||||
e.rmempty = false
|
||||
e.default = 0
|
||||
|
||||
e = t:option(ListValue, "koolproxy_mode", translate("过滤模式"))
|
||||
e.rmempty = false
|
||||
e:value(1, translate("全局模式"))
|
||||
e:value(2, translate("IPSET模式"))
|
||||
e:value(3, translate("视频模式"))
|
||||
e.default = 1
|
||||
|
||||
e = t:option(MultiValue, "koolproxy_rules", translate("内置规则"))
|
||||
e.optional = false
|
||||
e.rmempty = false
|
||||
e:value("koolproxy.txt", translate("静态规则"))
|
||||
e:value("daily.txt", translate("每日规则"))
|
||||
e:value("kp.dat", translate("视频规则"))
|
||||
e:value("user.txt", translate("自定义规则"))
|
||||
|
||||
e = t:option(MultiValue, "thirdparty_rules", translate("第三方规则"))
|
||||
e.optional = true
|
||||
e.rmempty = false
|
||||
e:value("ABP.txt", translate("ABP规则"))
|
||||
e:value("fanboy.txt", translate("Fanboy规则"))
|
||||
e:value("yhosts.txt", translate("Yhosts规则"))
|
||||
e:value("anti-ad.txt", translate("Anti-AD规则"))
|
||||
e:value("mv.txt", translate("乘风视频"))
|
||||
|
||||
e = t:option(ListValue, "koolproxy_port", translate("端口控制"))
|
||||
e.rmempty = false
|
||||
e:value(0, translate("关闭"))
|
||||
e:value(1, translate("开启"))
|
||||
e.default = 0
|
||||
|
||||
e = t:option(ListValue, "koolproxy_ipv6", translate("IPv6支持"))
|
||||
e.rmempty = false
|
||||
e:value(0, translate("关闭"))
|
||||
e:value(1, translate("开启"))
|
||||
e.default = 0
|
||||
|
||||
e = t:option(Value, "koolproxy_bp_port", translate("例外端口"))
|
||||
e.description = translate("单端口:80 多端口:80,443")
|
||||
e.rmempty = false
|
||||
e:depends("koolproxy_port", "1")
|
||||
|
||||
e = t:option(Flag, "koolproxy_host", translate("开启Adblock Plus Hosts"))
|
||||
e:depends("koolproxy_mode","2")
|
||||
e.default = 0
|
||||
|
||||
e = t:option(ListValue, "koolproxy_acl_default", translate("默认访问控制"))
|
||||
e.description = translate("访问控制设置中其他主机的默认规则")
|
||||
e.rmempty = false
|
||||
e:value(0, translate("不过滤"))
|
||||
e:value(1, translate("过滤HTTP协议"))
|
||||
e:value(2, translate("过滤HTTP(S)协议"))
|
||||
e:value(3, translate("全部过滤"))
|
||||
e.default = 1
|
||||
|
||||
e = t:option(ListValue, "time_update", translate("定时更新"))
|
||||
e.description = translate("定时更新规则。请把时间修改掉,默认时间使用人数多会更新失败")
|
||||
e.rmempty = false
|
||||
for t = 0,23 do
|
||||
e:value(t,translate("每天"..t.."点"))
|
||||
end
|
||||
e:value(nil, translate("关闭"))
|
||||
e.default = nil
|
||||
|
||||
e = t:option(Button, "restart", translate("规则状态"))
|
||||
e.inputtitle = translate("更新规则")
|
||||
e.inputstyle = "reload"
|
||||
e.write = function()
|
||||
luci.sys.call("/usr/share/koolproxy/kpupdate 2>&1 >/dev/null")
|
||||
luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy"))
|
||||
end
|
||||
e.description = translate(string.format("<font color=\"red\"><strong>更新订阅规则与Adblock Plus Hosts</strong></font><br /><font color=\"green\">ABP规则: %s条<br />Fanboy规则: %s条<br />Yhosts规则: %s条<br />Anti-AD规则: %s条<br />静态规则: %s条<br />视频规则: %s<br />乘风视频: %s条<br />每日规则: %s条<br />自定义规则: %s条<br />Host: %s条</font><br />", s, u, p, f, l, b, m, q, h, i))
|
||||
|
||||
return o
|
|
@ -0,0 +1,32 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection, "global")
|
||||
t.anonymous = true
|
||||
|
||||
e = t:option(TextValue, "adblock_domain")
|
||||
e.description = translate("加入的网址将走广告过滤端口。只针对黑名单模式。只能输入WEB地址,如:google.com,每个地址一行。")
|
||||
e.rmempty = false
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local i = "/etc/adblocklist/adblock"
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
if value then
|
||||
value = value:gsub("\r\n", "\n")
|
||||
else
|
||||
value = ""
|
||||
end
|
||||
fs.writefile("/tmp/adblock", value)
|
||||
if (luci.sys.call("cmp -s /tmp/adblock /etc/adblocklist/adblock") == 1) then
|
||||
fs.writefile(i, value)
|
||||
end
|
||||
fs.remove("/tmp/adblock")
|
||||
end
|
||||
|
||||
return o
|
|
@ -0,0 +1,31 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection, "global")
|
||||
t.title = translate("证书恢复")
|
||||
t.description = translate("上传恢复已备份的证书,文件名必须为koolproxyCA.tar.gz")
|
||||
t.anonymous = true
|
||||
|
||||
e = t:option(DummyValue,"c1status")
|
||||
e = t:option(FileUpload,"")
|
||||
e.template = "koolproxy/caupload"
|
||||
|
||||
t = o:section(TypedSection, "global")
|
||||
t.title = translate("证书备份")
|
||||
t.description = translate("下载备份的证书")
|
||||
t.anonymous = true
|
||||
|
||||
e = t:option(DummyValue,"",nil)
|
||||
e.template = "koolproxy/cadvalue"
|
||||
if nixio.fs.access("/usr/share/koolproxy/data/certs/ca.crt") then
|
||||
e = t:option(DummyValue,"c2status")
|
||||
e = t:option(Button,"certificate")
|
||||
e.inputtitle = translate("下载证书备份")
|
||||
e.inputstyle = "reload"
|
||||
e.write=function()
|
||||
luci.sys.call("/usr/share/koolproxy/camanagement backup 2>&1 >/dev/null")
|
||||
Download()
|
||||
luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy"))
|
||||
end
|
||||
end
|
||||
|
||||
return o
|
|
@ -0,0 +1,33 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection, "acl_rule", translate("GodProxy 访问控制"))
|
||||
t.anonymous = true
|
||||
|
||||
t.description = translate("访问控制列表是用于指定特殊IP过滤模式的工具,如为已安装证书的客户端开启https广告过滤等,MAC或者IP必须填写其中一项。")
|
||||
t.template = "cbi/tblsection"
|
||||
t.sortable = true
|
||||
t.addremove = true
|
||||
|
||||
e = t:option(Value, "remarks", translate("客户端备注"))
|
||||
e.rmempty = true
|
||||
e.width = "30%"
|
||||
|
||||
e = t:option(Value, "ipaddr", translate("内部IP地址"))
|
||||
e.width = "20%"
|
||||
e.datatype = "ip4addr"
|
||||
luci.ip.neighbors({family = 4}, function(neighbor)
|
||||
if neighbor.reachable then
|
||||
e:value(neighbor.dest:string(), "%s (%s)" %{neighbor.dest:string(), neighbor.mac})
|
||||
end
|
||||
end)
|
||||
|
||||
e = t:option(ListValue, "proxy_mode", translate("访问控制"))
|
||||
e.rmempty = false
|
||||
e.width = "20%"
|
||||
e:value(0,translate("不过滤"))
|
||||
e:value(1,translate("过滤 HTTP"))
|
||||
e:value(2,translate("过滤HTTP + HTTPS"))
|
||||
e:value(3,translate("过滤全端口"))
|
||||
e.default = 1
|
||||
|
||||
return o
|
|
@ -0,0 +1,32 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection, "global")
|
||||
t.anonymous = true
|
||||
|
||||
e = t:option(TextValue, "user_rule")
|
||||
e.description = translate("输入你的自定义规则,每条规则一行。")
|
||||
e.rmempty = false
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local i = "/usr/share/koolproxy/data/user.txt"
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
if value then
|
||||
value = value:gsub("\r\n", "\n")
|
||||
else
|
||||
value = ""
|
||||
end
|
||||
fs.writefile("/tmp/user.txt", value)
|
||||
if (luci.sys.call("cmp -s /tmp/user.txt /usr/share/koolproxy/data/user.txt") == 1) then
|
||||
fs.writefile(i, value)
|
||||
end
|
||||
fs.remove("/tmp/user.txt")
|
||||
end
|
||||
|
||||
return o
|
|
@ -1,396 +0,0 @@
|
|||
-- Copyright 2018 Nick Peng (pymumu@gmail.com)
|
||||
|
||||
require ("nixio.fs")
|
||||
require ("luci.http")
|
||||
require ("luci.dispatcher")
|
||||
require ("nixio.fs")
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local sys = require "luci.sys"
|
||||
local http = require "luci.http"
|
||||
|
||||
local o,t,e
|
||||
local v=luci.sys.exec("/usr/share/koolproxy/koolproxy -v")
|
||||
local a=luci.sys.exec("head -3 /usr/share/koolproxy/data/rules/koolproxy.txt | grep rules | awk -F' ' '{print $3,$4}'")
|
||||
local b=luci.sys.exec("head -4 /usr/share/koolproxy/data/rules/koolproxy.txt | grep video | awk -F' ' '{print $3,$4}'")
|
||||
local c=luci.sys.exec("head -3 /usr/share/koolproxy/data/rules/daily.txt | grep rules | awk -F' ' '{print $3,$4}'")
|
||||
local s=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/ABP.txt | wc -l")
|
||||
local m=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/mv.txt | wc -l")
|
||||
local u=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/fanboy.txt | wc -l")
|
||||
local p=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/yhosts.txt | wc -l")
|
||||
local h=luci.sys.exec("grep -v '^!' /usr/share/koolproxy/data/rules/user.txt | wc -l")
|
||||
local l=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/koolproxy.txt | wc -l")
|
||||
local q=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/daily.txt | wc -l")
|
||||
local f=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/anti-ad.txt | wc -l")
|
||||
local i=luci.sys.exec("cat /usr/share/koolproxy/dnsmasq.adblock | wc -l")
|
||||
|
||||
o = Map("koolproxy", translate("GodProxy 滤广告 "), translate("GodProxy是基于KoolProxyR Plus重新整理的能识别adblock规则的免费开源软件,追求体验更快、更清洁的网络,屏蔽烦人的广告!"))
|
||||
o:section(SimpleSection).template = "koolproxy/koolproxy_status"
|
||||
|
||||
t = o:section(TypedSection, "global")
|
||||
t.anonymous = true
|
||||
|
||||
t:tab("base",translate("Basic Settings"))
|
||||
|
||||
e = t:taboption("base", Flag, "enabled", translate("Enable"))
|
||||
e.default = 0
|
||||
e.rmempty = false
|
||||
|
||||
e = t:taboption("base", Value, "startup_delay", translate("启动延迟"))
|
||||
e:value(0, translate("不启用"))
|
||||
for _, v in ipairs({5, 10, 15, 25, 40, 60}) do
|
||||
e:value(v, translate("%u 秒") %{v})
|
||||
end
|
||||
e.datatype = "uinteger"
|
||||
e.default = 0
|
||||
e.rmempty = false
|
||||
|
||||
e = t:taboption("base", ListValue, "koolproxy_mode", translate("Filter Mode"))
|
||||
e.default = 1
|
||||
e.rmempty = false
|
||||
e:value(1, translate("全局模式"))
|
||||
e:value(2, translate("IPSET模式"))
|
||||
e:value(3, translate("视频模式"))
|
||||
|
||||
e = t:taboption("base", MultiValue, "koolproxy_rules", translate("内置规则"))
|
||||
e.optional = false
|
||||
e.rmempty = false
|
||||
e:value("koolproxy.txt", translate("静态规则"))
|
||||
e:value("daily.txt", translate("每日规则"))
|
||||
e:value("kp.dat", translate("视频规则"))
|
||||
e:value("user.txt", translate("自定义规则"))
|
||||
|
||||
e = t:taboption("base", MultiValue, "thirdparty_rules", translate("第三方规则"))
|
||||
e.optional = true
|
||||
e.rmempty = false
|
||||
e:value("ABP.txt", translate("ABP规则"))
|
||||
e:value("fanboy.txt", translate("Fanboy规则"))
|
||||
e:value("yhosts.txt", translate("Yhosts规则"))
|
||||
e:value("anti-ad.txt", translate("Anti-AD规则"))
|
||||
e:value("mv.txt", translate("乘风视频"))
|
||||
|
||||
e = t:taboption("base", ListValue, "koolproxy_port", translate("端口控制"))
|
||||
e.default = 0
|
||||
e.rmempty = false
|
||||
e:value(0, translate("关闭"))
|
||||
e:value(1, translate("开启"))
|
||||
|
||||
e = t:taboption("base", ListValue, "koolproxy_ipv6", translate("IPv6支持"))
|
||||
e.default = 0
|
||||
e.rmempty = false
|
||||
e:value(0, translate("关闭"))
|
||||
e:value(1, translate("开启"))
|
||||
|
||||
e = t:taboption("base", Value, "koolproxy_bp_port", translate("例外端口"))
|
||||
e:depends("koolproxy_port", "1")
|
||||
e.rmempty = false
|
||||
e.description = translate(string.format("<font color=\"red\"><strong>单端口:80 多端口:80,443</strong></font>"))
|
||||
|
||||
e=t:taboption("base",Flag,"koolproxy_host",translate("开启Adblock Plus Hosts"))
|
||||
e.default=0
|
||||
e:depends("koolproxy_mode","2")
|
||||
|
||||
|
||||
e = t:taboption("base", ListValue, "koolproxy_acl_default", translate("默认访问控制"))
|
||||
e.default = 1
|
||||
e.rmempty = false
|
||||
e:value(0, translate("不过滤"))
|
||||
e:value(1, translate("过滤HTTP协议"))
|
||||
e:value(2, translate("过滤HTTP(S)协议"))
|
||||
e:value(3, translate("全部过滤"))
|
||||
e.description = translate(string.format("<font color=\"blue\"><strong>访问控制设置中其他主机的默认规则</strong></font>"))
|
||||
|
||||
e = t:taboption("base", ListValue, "time_update", translate("定时更新"))
|
||||
|
||||
for t = 0,23 do
|
||||
|
||||
e:value(t,translate("每天"..t.."点"))
|
||||
end
|
||||
e:value(nil, translate("关闭"))
|
||||
e.default = nil
|
||||
e.rmempty = false
|
||||
e.description = translate(string.format("<font color=\"red\"><strong>定时更新规则。请把时间修改掉,默认时间使用人数多会更新失败</strong></font>"))
|
||||
|
||||
e = t:taboption("base", Button, "restart", translate("规则状态"))
|
||||
e.inputtitle = translate("更新规则")
|
||||
e.inputstyle = "reload"
|
||||
e.write = function()
|
||||
luci.sys.call("/usr/share/koolproxy/kpupdate 2>&1 >/dev/null")
|
||||
luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy"))
|
||||
end
|
||||
e.description = translate(string.format("<font color=\"red\"><strong>更新订阅规则与Adblock Plus Hosts</strong></font><br /><font color=\"green\">ABP规则: %s条<br />Fanboy规则: %s条<br />Yhosts规则: %s条<br />Anti-AD规则: %s条<br />静态规则: %s条<br />视频规则: %s<br />乘风视频: %s条<br />每日规则: %s条<br />自定义规则: %s条<br />Host: %s条</font><br />", s, u, p, f, l, b, m, q, h, i))
|
||||
t:tab("cert",translate("Certificate Management"))
|
||||
|
||||
e=t:taboption("cert",DummyValue,"c1status",translate("<div align=\"left\"><strong>证书恢复</strong></div>"))
|
||||
e=t:taboption("cert",FileUpload,"")
|
||||
e.template="koolproxy/caupload"
|
||||
e=t:taboption("cert",DummyValue,"",nil)
|
||||
e.template="koolproxy/cadvalue"
|
||||
if nixio.fs.access("/usr/share/koolproxy/data/certs/ca.crt")then
|
||||
e=t:taboption("cert",DummyValue,"c2status",translate("<div align=\"left\"><strong>证书备份</strong></div>"))
|
||||
e=t:taboption("cert",Button,"certificate")
|
||||
e.inputtitle=translate("Backup Download")
|
||||
e.inputstyle="reload"
|
||||
e.write=function()
|
||||
luci.sys.call("/usr/share/koolproxy/camanagement backup 2>&1 >/dev/null")
|
||||
Download()
|
||||
luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy"))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
t:tab("white_weblist",translate("网站白名单设置"))
|
||||
|
||||
local i = "/etc/adblocklist/adbypass"
|
||||
e = t:taboption("white_weblist", TextValue, "adbypass_domain")
|
||||
e.description = translate("这些已经加入的网站将不会使用过滤器。请输入网站的域名,每行只能输入一个网站域名。例如google.com。")
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
e.rmempty = false
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
if value then
|
||||
value = value:gsub("\r\n", "\n")
|
||||
else
|
||||
value = ""
|
||||
end
|
||||
fs.writefile("/tmp/adbypass", value)
|
||||
if (luci.sys.call("cmp -s /tmp/adbypass /etc/adblocklist/adbypass") == 1) then
|
||||
fs.writefile(i, value)
|
||||
end
|
||||
fs.remove("/tmp/adbypass")
|
||||
end
|
||||
|
||||
t:tab("weblist",translate("Set Backlist Of Websites"))
|
||||
|
||||
local i = "/etc/adblocklist/adblock"
|
||||
e = t:taboption("weblist", TextValue, "adblock_domain")
|
||||
e.description = translate("加入的网址将走广告过滤端口。只针对黑名单模式。只能输入WEB地址,如:google.com,每个地址一行。")
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
e.rmempty = false
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
if value then
|
||||
value = value:gsub("\r\n", "\n")
|
||||
else
|
||||
value = ""
|
||||
end
|
||||
fs.writefile("/tmp/adblock", value)
|
||||
if (luci.sys.call("cmp -s /tmp/adblock /etc/adblocklist/adblock") == 1) then
|
||||
fs.writefile(i, value)
|
||||
end
|
||||
fs.remove("/tmp/adblock")
|
||||
end
|
||||
|
||||
t:tab("white_iplist",translate("IP白名单设置"))
|
||||
|
||||
local i = "/etc/adblocklist/adbypassip"
|
||||
e = t:taboption("white_iplist", TextValue, "adbypass_ip")
|
||||
e.description = translate("这些已加入的ip地址将使用代理,但只有GFW型号。请输入ip地址或ip地址段,每行只能输入一个ip地址。例如,112.123.134.145 / 24或112.123.134.145。")
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
e.rmempty = false
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
if value then
|
||||
value = value:gsub("\r\n", "\n")
|
||||
else
|
||||
value = ""
|
||||
end
|
||||
fs.writefile("/tmp/adbypassip", value)
|
||||
if (luci.sys.call("cmp -s /tmp/adbypassip /etc/adblocklist/adbypassip") == 1) then
|
||||
fs.writefile(i, value)
|
||||
end
|
||||
fs.remove("/tmp/adbypassip")
|
||||
end
|
||||
|
||||
t:tab("iplist",translate("IP黑名单设置"))
|
||||
|
||||
local i = "/etc/adblocklist/adblockip"
|
||||
e = t:taboption("iplist", TextValue, "adblock_ip")
|
||||
e.description = translate("这些已经加入的ip地址不会使用过滤器.请输入ip地址或ip地址段,每行只能输入一个ip地址。例如,112.123.134.145 / 24或112.123.134.145。")
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
e.rmempty = false
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
if value then
|
||||
value = value:gsub("\r\n", "\n")
|
||||
else
|
||||
value = ""
|
||||
end
|
||||
fs.writefile("/tmp/adblockip", value)
|
||||
if (luci.sys.call("cmp -s /tmp/adblockip /etc/adblocklist/adblockip") == 1) then
|
||||
fs.writefile(i, value)
|
||||
end
|
||||
fs.remove("/tmp/adblockip")
|
||||
end
|
||||
|
||||
t:tab("customlist", translate("Set Backlist Of custom"))
|
||||
|
||||
local i = "/usr/share/koolproxy/data/user.txt"
|
||||
e = t:taboption("customlist", TextValue, "user_rule")
|
||||
e.description = translate("Enter your custom rules, each row.")
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
e.rmempty = false
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
if value then
|
||||
value = value:gsub("\r\n", "\n")
|
||||
else
|
||||
value = ""
|
||||
end
|
||||
fs.writefile("/tmp/user.txt", value)
|
||||
if (luci.sys.call("cmp -s /tmp/user.txt /usr/share/koolproxy/data/user.txt") == 1) then
|
||||
fs.writefile(i, value)
|
||||
end
|
||||
fs.remove("/tmp/user.txt")
|
||||
end
|
||||
|
||||
t:tab("logs",translate("View the logs"))
|
||||
|
||||
local i = "/var/log/koolproxy.log"
|
||||
e = t:taboption("logs", TextValue, "kpupdate_log")
|
||||
e.description = translate("Koolproxy Logs")
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
e.rmempty = false
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
end
|
||||
|
||||
t=o:section(TypedSection,"acl_rule",translate("GodProxy 访问控制"),
|
||||
translate("ACLs is a tools which used to designate specific IP filter mode,The MAC addresses added to the list will be filtered using https"))
|
||||
t.template="cbi/tblsection"
|
||||
t.sortable=true
|
||||
t.anonymous=true
|
||||
t.addremove=true
|
||||
e=t:option(Value,"remarks",translate("Client Remarks"))
|
||||
e.width="30%"
|
||||
e.rmempty=true
|
||||
e=t:option(Value,"ipaddr",translate("IP Address"))
|
||||
e.width="20%"
|
||||
e.datatype="ip4addr"
|
||||
luci.ip.neighbors({family = 4}, function(neighbor)
|
||||
if neighbor.reachable then
|
||||
e:value(neighbor.dest:string(), "%s (%s)" %{neighbor.dest:string(), neighbor.mac})
|
||||
end
|
||||
end)
|
||||
e=t:option(Value,"mac",translate("MAC Address"))
|
||||
e.width="20%"
|
||||
e.rmempty=true
|
||||
e.datatype="macaddr"
|
||||
luci.ip.neighbors({family = 4}, function(neighbor)
|
||||
if neighbor.reachable then
|
||||
e:value(neighbor.mac, "%s (%s)" %{neighbor.mac, neighbor.dest:string()})
|
||||
end
|
||||
end)
|
||||
e=t:option(ListValue,"proxy_mode",translate("访问控制"))
|
||||
e.width="20%"
|
||||
e.default=1
|
||||
e.rmempty=false
|
||||
e:value(0,translate("不过滤"))
|
||||
e:value(1,translate("过滤 HTTP"))
|
||||
e:value(2,translate("过滤HTTP + HTTPS"))
|
||||
e:value(3,translate("过滤全端口"))
|
||||
|
||||
t=o:section(TypedSection,"rss_rule",translate("GodProxy 规则订阅"), translate("请确保订阅规则的兼容性"))
|
||||
t.anonymous=true
|
||||
t.addremove=true
|
||||
t.sortable=true
|
||||
t.template="cbi/tblsection"
|
||||
t.extedit=luci.dispatcher.build_url("admin/services/koolproxy/rss_rule/%s")
|
||||
|
||||
t.create=function(...)
|
||||
local sid=TypedSection.create(...)
|
||||
if sid then
|
||||
luci.http.redirect(t.extedit % sid)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
e=t:option(Flag,"load",translate("启用"))
|
||||
e.default=0
|
||||
e.rmempty=false
|
||||
|
||||
e=t:option(DummyValue,"name",translate("规则名称"))
|
||||
function e.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or translate("None")
|
||||
end
|
||||
|
||||
e=t:option(DummyValue,"url",translate("规则地址"))
|
||||
function e.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or translate("None")
|
||||
end
|
||||
|
||||
e=t:option(DummyValue,"time",translate("更新时间"))
|
||||
|
||||
function Download()
|
||||
local t,e
|
||||
t=nixio.open("/tmp/upload/koolproxyca.tar.gz","r")
|
||||
luci.http.header('Content-Disposition','attachment; filename="koolproxyCA.tar.gz"')
|
||||
luci.http.prepare_content("application/octet-stream")
|
||||
while true do
|
||||
e=t:read(nixio.const.buffersize)
|
||||
if(not e)or(#e==0)then
|
||||
break
|
||||
else
|
||||
luci.http.write(e)
|
||||
end
|
||||
end
|
||||
t:close()
|
||||
luci.http.close()
|
||||
end
|
||||
local t,e
|
||||
t="/tmp/upload/"
|
||||
nixio.fs.mkdir(t)
|
||||
luci.http.setfilehandler(
|
||||
function(o,a,i)
|
||||
if not e then
|
||||
if not o then return end
|
||||
e=nixio.open(t..o.file,"w")
|
||||
if not e then
|
||||
return
|
||||
end
|
||||
end
|
||||
if a and e then
|
||||
e:write(a)
|
||||
end
|
||||
if i and e then
|
||||
e:close()
|
||||
e=nil
|
||||
luci.sys.call("/usr/share/koolproxy/camanagement restore 2>&1 >/dev/null")
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
t=o:section(TypedSection,"usetips",translate("GodProxy 帮助支持"))
|
||||
t.anonymous = true
|
||||
t:append(Template("koolproxy/feedback"))
|
||||
return o
|
|
@ -0,0 +1,32 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection, "global")
|
||||
t.anonymous = true
|
||||
|
||||
e = t:option(TextValue, "adblock_ip")
|
||||
e.description = translate("这些已经加入的ip地址不会使用过滤器.请输入ip地址或ip地址段,每行只能输入一个ip地址。例如,112.123.134.145 / 24或112.123.134.145。")
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
e.rmempty = false
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local i = "/etc/adblocklist/adblockip"
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
if value then
|
||||
value = value:gsub("\r\n", "\n")
|
||||
else
|
||||
value = ""
|
||||
end
|
||||
fs.writefile("/tmp/adblockip", value)
|
||||
if (luci.sys.call("cmp -s /tmp/adblockip /etc/adblocklist/adblockip") == 1) then
|
||||
fs.writefile(i, value)
|
||||
end
|
||||
fs.remove("/tmp/adblockip")
|
||||
end
|
||||
|
||||
return o
|
|
@ -0,0 +1,32 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection, "global")
|
||||
t.anonymous = true
|
||||
|
||||
e = t:option(TextValue, "adbypass_ip")
|
||||
e.description = translate("这些已加入的ip地址将使用代理,但只有GFW型号。请输入ip地址或ip地址段,每行只能输入一个ip地址。例如,112.123.134.145 / 24或112.123.134.145。")
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
e.rmempty = false
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local i = "/etc/adblocklist/adbypassip"
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
if value then
|
||||
value = value:gsub("\r\n", "\n")
|
||||
else
|
||||
value = ""
|
||||
end
|
||||
fs.writefile("/tmp/adbypassip", value)
|
||||
if (luci.sys.call("cmp -s /tmp/adbypassip /etc/adblocklist/adbypassip") == 1) then
|
||||
fs.writefile(i, value)
|
||||
end
|
||||
fs.remove("/tmp/adbypassip")
|
||||
end
|
||||
|
||||
return o
|
|
@ -2,7 +2,8 @@ local m, s, o
|
|||
local koolproxy = "koolproxy"
|
||||
local sid = arg[1]
|
||||
|
||||
m = Map(koolproxy, "%s - %s" %{translate("GodProxy滤广告"), translate("编辑规则")})
|
||||
m = Map(koolproxy)
|
||||
m.title = translate("GodProxy滤广告 - 编辑规则")
|
||||
m.redirect = luci.dispatcher.build_url("admin/services/koolproxy")
|
||||
|
||||
if not arg[1] or m.uci:get(koolproxy, sid) ~= "rss_rule" then
|
||||
|
@ -15,15 +16,15 @@ s = m:section(NamedSection, sid, "rss_rule")
|
|||
s.anonymous = true
|
||||
s.addremove = true
|
||||
|
||||
o=s:option(Flag,"load",translate("启用"))
|
||||
o.default=0
|
||||
o.rmempty=false
|
||||
o = s:option(Flag, "load", translate("启用"))
|
||||
o.rmempty = false
|
||||
o.default = 0
|
||||
|
||||
o=s:option(Value,"name",translate("规则描述"))
|
||||
o.rmempty=true
|
||||
o = s:option(Value, "name", translate("规则描述"))
|
||||
o.rmempty = true
|
||||
|
||||
o=s:option(Value,"url",translate("规则地址"))
|
||||
o.rmempty=false
|
||||
o = s:option(Value, "url", translate("规则地址"))
|
||||
o.rmempty = false
|
||||
o.placeholder="[https|http|ftp]://[Hostname]/[File]"
|
||||
function o.validate(self, value)
|
||||
if not value then
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection, "usetips")
|
||||
t.title = translate("GodProxy 帮助支持")
|
||||
t.anonymous = true
|
||||
t:append(Template("koolproxy/tips"))
|
||||
|
||||
return o
|
|
@ -0,0 +1,22 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection, "global")
|
||||
t.anonymous = true
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local i = "/var/log/koolproxy.log"
|
||||
|
||||
e = t:option(TextValue, "kpupdate_log")
|
||||
e.description = translate("查看最近的更新日志")
|
||||
e.rmempty = false
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
end
|
||||
|
||||
return o
|
|
@ -0,0 +1,32 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection, "global")
|
||||
t.anonymous = true
|
||||
|
||||
e = t:option(TextValue, "adbypass_domain")
|
||||
e.description = translate("这些已经加入的网站将不会使用过滤器。请输入网站的域名,每行只能输入一个网站域名。例如google.com。")
|
||||
e.rmempty = false
|
||||
e.rows = 28
|
||||
e.wrap = "off"
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local i = "/etc/adblocklist/adbypass"
|
||||
|
||||
function e.cfgvalue()
|
||||
return fs.readfile(i) or ""
|
||||
end
|
||||
|
||||
function e.write(self, section, value)
|
||||
if value then
|
||||
value = value:gsub("\r\n", "\n")
|
||||
else
|
||||
value = ""
|
||||
end
|
||||
fs.writefile("/tmp/adbypass", value)
|
||||
if (luci.sys.call("cmp -s /tmp/adbypass /etc/adblocklist/adbypass") == 1) then
|
||||
fs.writefile(i, value)
|
||||
end
|
||||
fs.remove("/tmp/adbypass")
|
||||
end
|
||||
|
||||
return o
|
|
@ -1,5 +1,5 @@
|
|||
<%+cbi/valueheader%>
|
||||
<label class="cbi-value" style="display:inline-block; width: 400px" for="ulfile"><font color="red"><%:Upload backup file,The file name must be koolproxyCA.tar.gz%></font></label><br />
|
||||
<label class="cbi-value" style="display:inline-block; width: 400px" for="ulfile"></label><br />
|
||||
<input class="cbi-input-file" style="width: 400px" type="file" id="ulfile" name="ulfile" />
|
||||
<input type="submit" class="cbi-button cbi-input-apply" name="upload" value="<%:Upload Restore%>" />
|
||||
<input type="submit" class="cbi-button cbi-input-apply" name="upload" value="<%:上传恢复证书%>" />
|
||||
<%+cbi/valuefooter%>
|
||||
|
|
|
@ -4,9 +4,9 @@ XHR.poll(3, '<%=url([[admin]], [[services]], [[koolproxy]], [[status]])%>', null
|
|||
var tb = document.getElementById('koolproxy_status');
|
||||
if (data && tb) {
|
||||
if (data.running) {
|
||||
tb.innerHTML = '<em><b><font color=green><%:KoolproxyR Plus+%> <%:RUNNING%></font></b></em>';
|
||||
tb.innerHTML = '<em><b><font color=green><%:GodProxy 滤广告%> <%:运行中%></font></b></em>';
|
||||
} else {
|
||||
tb.innerHTML = '<em><b><font color=red><%:KoolproxyR Plus+%> <%:NOT RUNNING%></font></b></em>';
|
||||
tb.innerHTML = '<em><b><font color=red><%:GodProxy 滤广告%> <%:未运行%></font></b></em>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -16,6 +16,6 @@ XHR.poll(3, '<%=url([[admin]], [[services]], [[koolproxy]], [[status]])%>', null
|
|||
<style>.mar-10 {margin-left: 50px; margin-right: 10px;}</style>
|
||||
<fieldset class="cbi-section">
|
||||
<p id="koolproxy_status">
|
||||
<em><%:Collecting data...%></em>
|
||||
<em><%:收集数据...%></em>
|
||||
</p>
|
||||
</fieldset>
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
msgid "RUNNING"
|
||||
msgstr "运行中"
|
||||
|
||||
msgid "NOT RUNNING"
|
||||
msgstr "未运行"
|
||||
|
||||
msgid "Filter Mode"
|
||||
msgstr "过滤模式"
|
||||
|
||||
msgid "Collecting data..."
|
||||
msgstr "收集数据..."
|
||||
|
||||
msgid "Basic Settings"
|
||||
msgstr "基础设置"
|
||||
|
||||
msgid "View the logs"
|
||||
msgstr "更新日志"
|
||||
|
||||
msgid "Certificate Management"
|
||||
msgstr "证书管理"
|
||||
|
||||
msgid "Set Backlist Of custom"
|
||||
msgstr "自定义规则"
|
||||
|
||||
msgid "IP Address"
|
||||
msgstr "内部IP地址"
|
||||
|
||||
msgid "Client Remarks"
|
||||
msgstr "客户端备注"
|
||||
|
||||
msgid "Upload Restore"
|
||||
msgstr "上传恢复证书"
|
||||
|
||||
msgid "Backup Download"
|
||||
msgstr "下载证书备份"
|
||||
|
||||
msgid "Set Backlist Of Websites"
|
||||
msgstr "网站黑名单设置"
|
||||
|
||||
msgid "KoolproxyR Plus+"
|
||||
msgstr "GodProxy 滤广告"
|
||||
|
||||
msgid "Koolproxy Logs"
|
||||
msgstr "查看最近的更新日志"
|
||||
|
||||
msgid "Enter your custom rules, each row."
|
||||
msgstr "输入你的自定义规则,每条规则一行。"
|
||||
|
||||
msgid "Upload backup file,The file name must be koolproxyCA.tar.gz"
|
||||
msgstr "上传恢复已备份的证书,文件名必须为koolproxyCA.tar.gz"
|
||||
|
||||
msgid "ACLs is a tools which used to designate specific IP filter mode,The MAC addresses added to the list will be filtered using https"
|
||||
msgstr "访问控制列表是用于指定特殊IP过滤模式的工具,如为已安装证书的客户端开启https广告过滤等,MAC或者IP必须填写其中一项。"
|
|
@ -1 +0,0 @@
|
|||
zh-cn
|
|
@ -430,7 +430,6 @@ start_service() {
|
|||
procd_set_param command /usr/share/koolproxy/koolproxy
|
||||
procd_append_param command --mark
|
||||
procd_append_param command --ttl 160
|
||||
procd_append_param command --ipv6
|
||||
|
||||
procd_set_param respawn
|
||||
|
||||
|
|
|
@ -110,31 +110,31 @@ update_rss_rules() {
|
|||
|
||||
|
||||
update_rules() {
|
||||
echo $(date "+%F %T"): ------------------- 内置规则更新 ------------------- >>$LOGFILE
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/kp.dat' -q -O $KP_DIR/data/rules/kp.dat
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/daily.txt' -q -O $KP_DIR/data/rules/daily.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/koolproxy.txt' -q -O $KP_DIR/data/rules/koolproxy.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/yhosts.txt' -q -O $KP_DIR/data/rules/yhosts.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/fanboy.txt' -q -O $KP_DIR/data/rules/fanboy.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/ABP.txt' -q -O $KP_DIR/data/rules/ABP.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/antiad.txt' -q -O $KP_DIR/data/rules/anti-ad.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/mv.txt' -q -O $KP_DIR/data/rules/mv.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/ipsetadblock/koolproxy_ipset.conf' -q -O $KP_DIR/koolproxy_ipset.conf
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/ipsetadblock/dnsmasq.adblock' -q -O $KP_DIR/dnsmasq.adblock
|
||||
ABP_rules_local=`cat /usr/share/koolproxy/data/rules/easylistchina.txt | sed -n '3p'|awk '{print $3,$4}'`
|
||||
fanboy_rules_local=`cat /usr/share/koolproxy/data/rules/fanboy.txt | sed -n '3p'|awk '{print $3,$4}'`
|
||||
yhosts_rules_local=`cat /usr/share/koolproxy/data/rules/yhosts.txt | sed -n '1p' | cut -d ":" -f2`
|
||||
antiad_rules_local=`cat /usr/share/koolproxy/data/rules/anti-ad.txt | sed -n '2p' | cut -d "=" -f2`
|
||||
koolproxy_rules_local=`cat /usr/share/koolproxy/data/rules/koolproxy.txt | sed -n '3p'|awk '{print $3,$4}'`
|
||||
mv_rules_local=`cat /usr/share/koolproxy/data/rules/mv.txt | sed -n '3p'|awk '{print $3,$4}'`
|
||||
echo $(date "+%F %T"): -------------------ABP规则 Version $ABP_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------Fanboy规则 Version $fanboy_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------Yhosts规则 Version $yhosts_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------Anti-AD规则 Version $antiad_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------静态规则 Version $koolproxy_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------乘风视频 Version $mv_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): ------------------- 内置规则更新成功! ------------------- >>$LOGFILE
|
||||
RESTART_KOOLPROXY=true
|
||||
echo $(date "+%F %T"): ------------------- 内置规则更新 ------------------- >>$LOGFILE
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/kp.dat' -q -O $KP_DIR/data/rules/kp.dat
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/daily.txt' -q -O $KP_DIR/data/rules/daily.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/koolproxy.txt' -q -O $KP_DIR/data/rules/koolproxy.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/yhosts.txt' -q -O $KP_DIR/data/rules/yhosts.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/fanboy.txt' -q -O $KP_DIR/data/rules/fanboy.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/ABP.txt' -q -O $KP_DIR/data/rules/ABP.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/antiad.txt' -q -O $KP_DIR/data/rules/anti-ad.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/rules/mv.txt' -q -O $KP_DIR/data/rules/mv.txt
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/ipsetadblock/koolproxy_ipset.conf' -q -O $KP_DIR/koolproxy_ipset.conf
|
||||
wget 'https://raw.githubusercontents.com/project-lede/koolproxy/main/ipsetadblock/dnsmasq.adblock' -q -O $KP_DIR/dnsmasq.adblock
|
||||
ABP_rules_local=`cat /usr/share/koolproxy/data/rules/easylistchina.txt | sed -n '3p'|awk '{print $3,$4}'`
|
||||
fanboy_rules_local=`cat /usr/share/koolproxy/data/rules/fanboy.txt | sed -n '3p'|awk '{print $3,$4}'`
|
||||
yhosts_rules_local=`cat /usr/share/koolproxy/data/rules/yhosts.txt | sed -n '1p' | cut -d ":" -f2`
|
||||
antiad_rules_local=`cat /usr/share/koolproxy/data/rules/anti-ad.txt | sed -n '2p' | cut -d "=" -f2`
|
||||
koolproxy_rules_local=`cat /usr/share/koolproxy/data/rules/koolproxy.txt | sed -n '3p'|awk '{print $3,$4}'`
|
||||
mv_rules_local=`cat /usr/share/koolproxy/data/rules/mv.txt | sed -n '3p'|awk '{print $3,$4}'`
|
||||
echo $(date "+%F %T"): -------------------ABP规则 Version $ABP_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------Fanboy规则 Version $fanboy_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------Yhosts规则 Version $yhosts_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------Anti-AD规则 Version $antiad_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------静态规则 Version $koolproxy_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------乘风视频 Version $mv_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): ------------------- 内置规则更新成功! ------------------- >>$LOGFILE
|
||||
RESTART_KOOLPROXY=true
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,48 +1,57 @@
|
|||
2021-11-09 05:53:19: ------------------- 规则更新 -----------------------
|
||||
2021-11-09 05:53:19: ====================================================
|
||||
2021-11-09 05:53:19: 开始更新koolproxy的规则,请等待...
|
||||
2021-11-09 05:53:19: ---------------------------------------------------------------------------------------
|
||||
2021-11-09 05:53:20: ---------------------------------------------------------------------------------------
|
||||
2021-11-09 05:53:21: ABP规则的本地版本号: 202111090542
|
||||
2021-11-09 05:53:21: ABP规则的在线版本号: 202111090551
|
||||
2021-11-09 05:53:21: 检测到 ABP规则 已更新,现在开始更新...
|
||||
2021-11-09 05:53:21: 将临时的ABP规则文件移动到指定位置
|
||||
2021-11-09 05:53:23: yhosts规则本地版本号: 202110242326
|
||||
2021-11-09 05:53:23: yhosts规则在线版本号: 202110242326
|
||||
2021-11-09 05:53:23: 检测到yhosts本地版本号和在线版本号相同,那还更新个毛啊!
|
||||
2021-11-09 05:53:23: 远程视频规则md5:
|
||||
2021-11-09 05:53:23: 您本地视频规则md5:48cdd7ed1e121aabf00b0884538e1cfe
|
||||
2021-11-09 05:53:23: 检测到新版视频规则.开始更新..........
|
||||
2021-11-09 05:53:23: 您下载的视频规则md5:d41d8cd98f00b204e9800998ecf8427e
|
||||
2021-11-09 05:53:23: 视频规则md5校验不通过...
|
||||
2021-11-09 05:53:25: fanboy规则本地版本号: 202111090500
|
||||
2021-11-09 05:53:25: fanboy规则在线版本号: 202111090550
|
||||
2021-11-09 05:53:25: 检测到新版本 fanboy规则 列表,开始更新...
|
||||
2021-11-09 05:53:25: 将临时文件覆盖到原始 fanboy规则 文件
|
||||
2021-11-09 05:53:25: antiad规则本地版本号: 20211108024012
|
||||
2021-11-09 05:53:25: antiad规则在线版本号: 20211108024012
|
||||
2021-11-09 05:53:25: 检测到 antiad规则 本地版本号和在线版本号相同,那还更新个毛啊!
|
||||
2021-11-09 05:53:25: Android规则本地版本号: 20211107000607
|
||||
2021-11-09 05:53:25: Android规则在线版本号: 20211107000607
|
||||
2021-11-09 05:53:25: 检测到 Android规则 本地版本号和在线版本号相同,那还更新个毛啊!
|
||||
2021-11-09 05:53:25: StevenBlack规则本地版本号: 04 November 2021
|
||||
2021-11-09 05:53:25: StevenBlack规则在线版本号:
|
||||
2021-11-09 05:53:25: 检测到 StevenBlack规则 本地版本号和在线版本号相同,那还更新个毛啊!
|
||||
2021-11-09 05:53:25: 正在优化 fanboy规则。。。。。
|
||||
2021-11-09 05:53:26: 正在优化 ABP规则。。。。。
|
||||
2021-11-09 05:53:31: 跳过优化 补充规则yhosts。。。。。
|
||||
2021-11-09 05:53:31: 跳过优化 补充规则antiad。。。。。
|
||||
2021-11-09 05:53:31: 跳过优化 补充规则Android。。。。。
|
||||
2021-11-09 05:53:31: 跳过优化 补充规则StevenBlack。。。。。
|
||||
2021-11-09 05:53:31: 所有规则更新并优化完毕!
|
||||
2021-11-09 05:53:31: ====================================================
|
||||
2021-11-09 05:53:33: -------------------ABP规则 version 202111090551
|
||||
2021-11-09 05:53:33: -------------------Fanboy规则 version 202111090550
|
||||
2021-11-09 05:53:33: -------------------Yhosts规则 version 202110242326
|
||||
2021-11-09 05:53:33: -------------------Antiad规则 version 20211108024012
|
||||
2021-11-09 05:53:33: -------------------Android规则 version 20211107000607
|
||||
2021-11-09 05:53:33: -------------------StevenBlack规则 version 04 November 2021
|
||||
2021-11-09 05:53:33: -------------------静态规则 version 2020-02-27 23:00
|
||||
2021-11-09 05:53:33: -------------------乘风视频 version 202111051
|
||||
2021-11-09 05:53:33: ------------------- 内置规则更新成功! -------------------
|
||||
2021-11-09 05:53:33: ------------------- 规则更新成功! -------------------
|
||||
2021-11-09 16:04:25: ------------------- 规则更新 -----------------------
|
||||
2021-11-09 16:04:25: ====================================================
|
||||
2021-11-09 16:04:25: 开始更新koolproxy的规则,请等待...
|
||||
2021-11-09 16:04:25: ---------------------------------------------------------------------------------------
|
||||
2021-11-09 16:04:28: ---------------------------------------------------------------------------------------
|
||||
2021-11-09 16:04:30: ABP规则的本地版本号: 202111091551
|
||||
2021-11-09 16:04:30: ABP规则的在线版本号: 202111091602
|
||||
2021-11-09 16:04:30: 检测到 ABP规则 已更新,现在开始更新...
|
||||
2021-11-09 16:04:30: 将临时的ABP规则文件移动到指定位置
|
||||
2021-11-09 16:04:31: yhosts规则本地版本号: 202111082343
|
||||
2021-11-09 16:04:31: yhosts规则在线版本号: 202111082343
|
||||
2021-11-09 16:04:31: 检测到yhosts本地版本号和在线版本号相同,那还更新个毛啊!
|
||||
2021-11-09 16:04:31: 远程视频规则md5:
|
||||
2021-11-09 16:04:31: 您本地视频规则md5:48cdd7ed1e121aabf00b0884538e1cfe
|
||||
2021-11-09 16:04:31: 检测到新版视频规则.开始更新..........
|
||||
2021-11-09 16:04:31: 您下载的视频规则md5:d41d8cd98f00b204e9800998ecf8427e
|
||||
2021-11-09 16:04:31: 视频规则md5校验不通过...
|
||||
2021-11-09 16:04:32: fanboy规则本地版本号: 202111091550
|
||||
2021-11-09 16:04:32: fanboy规则在线版本号: 202111091600
|
||||
2021-11-09 16:04:32: 检测到新版本 fanboy规则 列表,开始更新...
|
||||
2021-11-09 16:04:32: 将临时文件覆盖到原始 fanboy规则 文件
|
||||
2021-11-09 16:04:33: antiad规则本地版本号:
|
||||
2021-11-09 16:04:33: antiad规则在线版本号: 20211108024012
|
||||
2021-11-09 16:04:33: 检测到新版本 antiad规则 列表,开始更新...
|
||||
2021-11-09 16:04:33: 将临时文件覆盖到原始 antiad规则 文件
|
||||
2021-11-09 16:04:33: Android规则本地版本号:
|
||||
2021-11-09 16:04:33: Android规则在线版本号: 20211107000607
|
||||
2021-11-09 16:04:33: 检测到新版本 Android规则 列表,开始更新...
|
||||
2021-11-09 16:04:33: 将临时文件覆盖到原始 Android规则 文件
|
||||
2021-11-09 16:04:33: StevenBlack规则本地版本号:
|
||||
2021-11-09 16:04:33: StevenBlack规则在线版本号: 04 November 2021
|
||||
2021-11-09 16:04:33: 检测到新版本 StevenBlack规则 列表,开始更新...
|
||||
2021-11-09 16:04:33: 将临时文件覆盖到原始 StevenBlack规则 文件
|
||||
2021-11-09 16:04:34: AdAway规则本地版本号:
|
||||
2021-11-09 16:04:34: AdAway规则在线版本号:
|
||||
2021-11-09 16:04:34: 检测到新版本 AdAway规则 列表,开始更新...
|
||||
2021-11-09 16:04:34: 将临时文件覆盖到原始 AdAway规则 文件
|
||||
2021-11-09 16:04:34: 正在优化 fanboy规则。。。。。
|
||||
2021-11-09 16:04:34: 正在优化 ABP规则。。。。。
|
||||
2021-11-09 16:04:40: 跳过优化 补充规则yhosts。。。。。
|
||||
2021-11-09 16:04:40: 正在优化 补充规则antiad。。。。。
|
||||
2021-11-09 16:04:41: 正在优化 补充规则Android。。。。。
|
||||
2021-11-09 16:04:41: 正在优化 补充规则steven。。。。。
|
||||
2021-11-09 16:04:43: 正在优化 补充规则AdAway。。。。。
|
||||
2021-11-09 16:04:43: 所有规则更新并优化完毕!
|
||||
2021-11-09 16:04:43: ====================================================
|
||||
2021-11-09 16:04:45: -------------------ABP规则 version 202111091602
|
||||
2021-11-09 16:04:45: -------------------Fanboy规则 version 202111091600
|
||||
2021-11-09 16:04:45: -------------------Yhosts规则 version 202111082343
|
||||
2021-11-09 16:04:45: -------------------Antiad规则 version 20211108024012
|
||||
2021-11-09 16:04:45: -------------------AdAway规则 version
|
||||
2021-11-09 16:04:45: -------------------Android规则 version 20211107000607
|
||||
2021-11-09 16:04:45: -------------------StevenBlack规则 version 04 November 2021
|
||||
2021-11-09 16:04:45: -------------------静态规则 version 2020-02-27 23:00
|
||||
2021-11-09 16:04:45: -------------------乘风视频 version 202111051
|
||||
2021-11-09 16:04:45: ------------------- 内置规则更新成功! -------------------
|
||||
2021-11-09 16:04:45: ------------------- 规则更新成功! -------------------
|
||||
|
|
Loading…
Reference in New Issue