update-11.30
This commit is contained in:
parent
84b74d9669
commit
f42ccfe2de
|
@ -8,9 +8,8 @@ include $(TOPDIR)/rules.mk
|
|||
LUCI_TITLE:=LuCI support for Scheduled Reboot
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=1.0
|
||||
PKG_RELEASE:=9
|
||||
PKG_RELEASE:=10
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
module("luci.controller.autoreboot",package.seeall)
|
||||
|
||||
function index()
|
||||
if not nixio.fs.access("/etc/config/autoreboot") then
|
||||
return
|
||||
|
|
|
@ -1,31 +1,33 @@
|
|||
require("luci.sys")
|
||||
|
||||
m=Map("autoreboot",translate("Scheduled Reboot"),translate("Scheduled reboot Setting"))
|
||||
m = Map("autoreboot")
|
||||
m.title = translate("Scheduled Reboot")
|
||||
m.description = translate("Scheduled reboot Setting")
|
||||
|
||||
s=m:section(TypedSection,"login","")
|
||||
s.addremove=false
|
||||
s.anonymous=true
|
||||
s = m:section(TypedSection, "login")
|
||||
s.addremove = false
|
||||
s.anonymous = true
|
||||
|
||||
enable=s:option(Flag,"enable",translate("Enable"))
|
||||
enable = s:option(Flag,"enable" ,translate("Enable"))
|
||||
enable.rmempty = false
|
||||
enable.default=0
|
||||
enable.default = 0
|
||||
|
||||
week=s:option(ListValue,"week",translate("Week Day"))
|
||||
week:value(7,translate("Everyday"))
|
||||
week:value(1,translate("Monday"))
|
||||
week:value(2,translate("Tuesday"))
|
||||
week:value(3,translate("Wednesday"))
|
||||
week:value(4,translate("Thursday"))
|
||||
week:value(5,translate("Friday"))
|
||||
week:value(6,translate("Saturday"))
|
||||
week:value(0,translate("Sunday"))
|
||||
week.default=0
|
||||
week = s:option(ListValue, "week", translate("Week Day"))
|
||||
week:value(7, translate("Everyday"))
|
||||
week:value(1, translate("Monday"))
|
||||
week:value(2, translate("Tuesday"))
|
||||
week:value(3, translate("Wednesday"))
|
||||
week:value(4, translate("Thursday"))
|
||||
week:value(5, translate("Friday"))
|
||||
week:value(6, translate("Saturday"))
|
||||
week:value(0, translate("Sunday"))
|
||||
week.default = 0
|
||||
|
||||
hour=s:option(Value,"hour",translate("Hour"))
|
||||
hour = s:option(Value, "hour", translate("Hour"))
|
||||
hour.datatype = "range(0,23)"
|
||||
hour.rmempty = false
|
||||
|
||||
pass=s:option(Value,"minute",translate("Minute"))
|
||||
pass = s:option(Value, "minute", translate("Minute"))
|
||||
pass.datatype = "range(0,59)"
|
||||
pass.rmempty = false
|
||||
|
||||
|
|
|
@ -4,4 +4,3 @@ config login
|
|||
option hour '5'
|
||||
option week '3'
|
||||
option enable '0'
|
||||
|
||||
|
|
|
@ -1,24 +1,21 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
START=50
|
||||
|
||||
config_t_get() {
|
||||
local index=0
|
||||
[ -n "$4" ] && index=$4
|
||||
local ret=$(uci -q get autoreboot.@$1[$index].$2 2>/dev/null)
|
||||
echo ${ret:=$3}
|
||||
}
|
||||
|
||||
run_reboot()
|
||||
{
|
||||
local enable=$(config_t_get login enable 0)
|
||||
if [ "$enable" = 1 ]; then
|
||||
local minute=$(config_t_get login minute)
|
||||
local hour=$(config_t_get login hour)
|
||||
local week=$(config_t_get login week)
|
||||
if [ "$minute" = 0 ] ; then
|
||||
local enable
|
||||
config_get_bool enable $1 enable
|
||||
|
||||
if [ $enable = 1 ]; then
|
||||
local minute
|
||||
local hour
|
||||
config_get week $1 week
|
||||
config_get minute $1 minute
|
||||
config_get hour $1 hour
|
||||
if [ $minute = 0 ] ; then
|
||||
minute="00"
|
||||
fi
|
||||
if [ "$week" = 7 ] ; then
|
||||
if [ $week = 7 ] ; then
|
||||
week="*"
|
||||
fi
|
||||
sed -i '/reboot/d' /etc/crontabs/root >/dev/null 2>&1
|
||||
|
@ -34,7 +31,8 @@ run_reboot()
|
|||
|
||||
start()
|
||||
{
|
||||
run_reboot
|
||||
config_load autoreboot
|
||||
config_foreach run_reboot login
|
||||
}
|
||||
|
||||
stop()
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-godproxy
|
||||
PKG_NAME:=luci-app-ikoolproxy
|
||||
PKG_VERSION:=3.8.5
|
||||
PKG_RELEASE:=3-20211121
|
||||
PKG_RELEASE:=3-20211201
|
||||
|
||||
PKG_MAINTAINER:=panda-mute <wxuzju@gmail.com>
|
||||
|
||||
LUCI_TITLE:=LuCI support for koolproxy
|
||||
LUCI_PKGARCH:=all
|
||||
LUCI_DEPENDS:=+koolproxy +openssl-util +ipset +dnsmasq-full +@BUSYBOX_CONFIG_DIFF +iptables-mod-nat-extra +wget
|
||||
LUCI_DEPENDS:=+ikoolproxy +openssl-util +ipset +dnsmasq-full +@BUSYBOX_CONFIG_DIFF +iptables-mod-nat-extra +wget
|
||||
|
||||
define Package/$(PKG_NAME)/conffiles
|
||||
/etc/config/koolproxy
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
## 整理声明:
|
||||
iKoolProxy是[Beginner-Go](https://github.com/Beginner-Go) 大神基于koolproxyR Plus+重新整理而来。主要参考:
|
||||
iKoolProxy是[Beginner-Go](https://github.com/Beginner-Go) 大神基于koolproxyR重新整理而来的。主要参考:
|
||||
|
||||
1、以前Ameykyl大神的 [KoolProxyR](https://github.com/Ameykyl/luci-app-koolproxyR) (源码已经2020年4月删除)。源码来源于 [project-openwrt](https://github.com/project-openwrt/luci-app-koolproxyR) 收录的ameykyl的2020年3月最后一次更新。
|
||||
|
||||
2、感谢koolproxy官方组、shaoxia、Ameykyl、immortalwrt组、Beginner-Go等的无私奉献!
|
||||
|
||||
3、规则来源于 [KoolProxy](https://github.com/godros/koolproxy) 。在此特别鸣谢 [houzi-](https://github.com/houzi-) 。
|
||||
3、规则来源于 [KoolProxy](https://github.com/iwrt/koolproxy) 。在此特别鸣谢 [houzi-](https://github.com/houzi-) 。
|
||||
|
||||
## 本来是完全没有必要再造一个的,因为浪费时间。但各位大神都好久没有更新了,有些规则更新需要翻墙,有些名字是KP,有些是KPR,KPR Plus,KPR Plus+。既然在koolproxy上整理而来就暂且叫iKoolProxy。望理解!
|
||||
|
||||
|
@ -58,7 +58,7 @@ CONFIG_PACKAGE_ca-bundle=y
|
|||
|
||||
CONFIG_PACKAGE_ca-certificates=y
|
||||
|
||||
CONFIG_PACKAGE_libustream-openssl=y
|
||||
CONFIG_PACKAGE_libustream-openssl=n
|
||||
|
||||
CONFIG_PACKAGE_lua-openssl=y
|
||||
|
||||
|
@ -68,7 +68,7 @@ CONFIG_PACKAGE_lua-openssl=y
|
|||
此文件为 UCI 配置文件, 配置方式可参考 Wiki -> Use-UCI-system 和 OpenWrt Wiki
|
||||
|
||||
## 6、编译
|
||||
git clone https://github.com/godros/luci-app-ikoolproxy.git package/luci-app-ikoolproxy
|
||||
git clone https://github.com/iwrt/luci-app-ikoolproxy.git package/luci-app-ikoolproxy
|
||||
|
||||
make && sudo make install
|
||||
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=koolproxy
|
||||
PKG_NAME:=ikoolproxy
|
||||
PKG_VERSION:=3.8.5
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/koolproxy
|
||||
define Package/ikoolproxy
|
||||
SECTION:=multimedia
|
||||
CATEGORY:=Multimedia
|
||||
DEPENDS:=@(aarch64||arm||i386||mips||mipsel||x86_64)
|
||||
TITLE:=koolproxy bin from koolshare
|
||||
TITLE:=ikoolproxy bin from koolshare
|
||||
URL:=https://github.com/houzi-/CDN
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
endef
|
||||
|
||||
define Package/koolproxy/install
|
||||
define Package/ikoolproxy/install
|
||||
$(INSTALL_DIR) $(1)/usr/share/koolproxy
|
||||
|
||||
ifeq ($(ARCH),aarch64)
|
||||
|
@ -40,4 +40,4 @@ else ifeq ($(ARCH),x86_64)
|
|||
endif
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,koolproxy))
|
||||
$(eval $(call BuildPackage,ikoolproxy))
|
0
luci-app-godproxy/koolproxy/files/aarch64 → luci-app-godproxy/ikoolproxy/files/aarch64
Executable file → Normal file
0
luci-app-godproxy/koolproxy/files/aarch64 → luci-app-godproxy/ikoolproxy/files/aarch64
Executable file → Normal file
0
luci-app-godproxy/koolproxy/files/arm → luci-app-godproxy/ikoolproxy/files/arm
Executable file → Normal file
0
luci-app-godproxy/koolproxy/files/arm → luci-app-godproxy/ikoolproxy/files/arm
Executable file → Normal file
0
luci-app-godproxy/koolproxy/files/i386 → luci-app-godproxy/ikoolproxy/files/i386
Executable file → Normal file
0
luci-app-godproxy/koolproxy/files/i386 → luci-app-godproxy/ikoolproxy/files/i386
Executable file → Normal file
0
luci-app-godproxy/koolproxy/files/mips → luci-app-godproxy/ikoolproxy/files/mips
Executable file → Normal file
0
luci-app-godproxy/koolproxy/files/mips → luci-app-godproxy/ikoolproxy/files/mips
Executable file → Normal file
|
@ -0,0 +1 @@
|
|||
|
0
luci-app-godproxy/koolproxy/files/x86_64 → luci-app-godproxy/ikoolproxy/files/x86_64
Executable file → Normal file
0
luci-app-godproxy/koolproxy/files/x86_64 → luci-app-godproxy/ikoolproxy/files/x86_64
Executable file → Normal file
Binary file not shown.
|
@ -5,7 +5,7 @@ function index()
|
|||
return
|
||||
end
|
||||
|
||||
entry({"admin", "services", "koolproxy"}, alias("admin", "services", "koolproxy", "basic"), _("GodProxy 滤广告"), 1).dependent = true
|
||||
entry({"admin", "services", "koolproxy"}, alias("admin", "services", "koolproxy", "basic"), _("iKoolProxy 滤广告"), 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
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection,"rss_rule", translate("GodProxy 规则订阅"))
|
||||
t = o:section(TypedSection,"rss_rule", translate("iKoolProxy 规则订阅"))
|
||||
t.description = translate("请确保订阅规则的兼容性")
|
||||
t.anonymous = true
|
||||
t.addremove = true
|
||||
|
|
|
@ -20,12 +20,12 @@ local p = luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/yhosts.txt |
|
|||
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 f = luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/antiad.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.title = translate("iKoolProxy滤广告")
|
||||
o.description = translate("iKoolProxy是基于KoolProxyR重新整理的能识别adblock规则的免费开源软件,追求体验更快、更清洁的网络,屏蔽烦人的广告!")
|
||||
|
||||
o:section(SimpleSection).template = "koolproxy/koolproxy_status"
|
||||
|
||||
|
@ -66,8 +66,8 @@ e.rmempty = true
|
|||
e:value("adg.txt", translate("AdGuard规则"))
|
||||
e:value("steven.txt", translate("Steven规则"))
|
||||
e:value("yhosts.txt", translate("Yhosts规则"))
|
||||
e:value("anti-ad.txt", translate("Anti-AD规则"))
|
||||
e:value("adgk.txt", translate("坂本规则"))
|
||||
e:value("antiad.txt", translate("AntiAD规则"))
|
||||
e:value("adgk.txt", translate("Banben规则"))
|
||||
|
||||
e = t:option(ListValue, "koolproxy_port", translate("端口控制"))
|
||||
e.rmempty = false
|
||||
|
@ -100,7 +100,7 @@ e:value(3, translate("过滤全端口"))
|
|||
e.default = 1
|
||||
|
||||
e = t:option(ListValue, "time_update", translate("定时更新"))
|
||||
e.description = translate("定时更新规则。请把时间修改掉,默认时间使用人数多会更新失败")
|
||||
e.description = translate("定时更新规则")
|
||||
e.rmempty = false
|
||||
for t = 0,23 do
|
||||
e:value(t,translate("每天"..t.."点"))
|
||||
|
@ -115,6 +115,6 @@ 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\">AdGuard规则: %s条<br />Steven规则: %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))
|
||||
e.description = translate(string.format("<font color=\"red\"><strong>更新订阅规则与Adblock Plus Hosts</strong></font><br /><font color=\"green\">AdGuard规则: %s条<br />Steven规则: %s条<br />Yhosts规则: %s条<br />AntiAD规则: %s条<br />静态规则: %s条<br />视频规则: %s<br />Banben规则: %s条<br />每日规则: %s条<br />自定义规则: %s条<br />Host: %s条</font><br />", s, u, p, f, l, b, m, q, h, i))
|
||||
|
||||
return o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection, "acl_rule", translate("GodProxy 访问控制"))
|
||||
t = o:section(TypedSection, "acl_rule", translate("iKoolProxy 访问控制"))
|
||||
t.anonymous = true
|
||||
|
||||
t.description = translate("访问控制列表是用于指定特殊IP过滤模式的工具,如为已安装证书的客户端开启https广告过滤等,MAC或者IP必须填写其中一项。")
|
||||
|
|
|
@ -3,7 +3,7 @@ local koolproxy = "koolproxy"
|
|||
local sid = arg[1]
|
||||
|
||||
m = Map(koolproxy)
|
||||
m.title = translate("GodProxy滤广告 - 编辑规则")
|
||||
m.title = translate("iKoolProxy滤广告 - 编辑规则")
|
||||
m.redirect = luci.dispatcher.build_url("admin/services/koolproxy")
|
||||
|
||||
if not arg[1] or m.uci:get(koolproxy, sid) ~= "rss_rule" then
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
o = Map("koolproxy")
|
||||
|
||||
t = o:section(TypedSection, "usetips")
|
||||
t.title = translate("GodProxy 帮助支持")
|
||||
t.title = translate("iKoolProxy 帮助支持")
|
||||
t.anonymous = true
|
||||
t:append(Template("koolproxy/tips"))
|
||||
|
||||
|
|
|
@ -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><%:GodProxy 滤广告%>' + data.bin_version + '<%:运行中%></font></b></em>';
|
||||
tb.innerHTML = '<em><b><font color=green><%:iKoolProxy 滤广告%>' + data.bin_version + '<%:运行中%></font></b></em>';
|
||||
} else {
|
||||
tb.innerHTML = '<em><b><font color=red><%:GodProxy 滤广告%>' + data.bin_version + '<%:未运行%></font></b></em>';
|
||||
tb.innerHTML = '<em><b><font color=red><%:iKoolProxy 滤广告%>' + data.bin_version + '<%:未运行%></font></b></em>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
</style>
|
||||
<div class="cbi-value">
|
||||
<label class="cbi-value-title">GodProxy重要简洁的使用Tips:</label>
|
||||
<label class="cbi-value-title">iKoolProxy的使用Tips:</label>
|
||||
<div class="cbi-value-field">
|
||||
<br />
|
||||
1、 推荐配置:过滤模式(全局模式)+ 默认访问控制(过滤http协议)达到最佳的过滤效果。
|
||||
|
@ -9,15 +9,13 @@
|
|||
<br />
|
||||
3、 Adblock Plus的Host列表 + KoolProxy黑名单模式运行更流畅上网体验。
|
||||
<br />
|
||||
4、 要过滤视频广告,必须选中规则中的视频规则。因为其他规则里面已经剔除了视频的网站。
|
||||
<br />
|
||||
5、 过滤HTTPS广告需要为相应客户端安装证书,在“控制控制”里添加客户端ip或者mac地址,并选择用<u><font color='#FF0000'>HTTP + HTTPS</font></u>过滤!
|
||||
4、 过滤HTTPS广告需要为相应客户端安装证书,在“控制控制”里添加客户端ip或者mac地址,并选择用<u><font color='#FF0000'>HTTP + HTTPS</font></u>过滤!
|
||||
<br />
|
||||
6、 在路由器下的设备,在浏览器中输入<u><font color='#FF0000'>110.110.110.110</font></u>来下载证书,导入证书目录请选择“受信任的根证书颁发机构”。
|
||||
5、 在路由器下的设备,在浏览器中输入<u><font color='#FF0000'>110.110.110.110</font></u>来下载证书,导入证书目录请选择“受信任的根证书颁发机构”。
|
||||
<br />
|
||||
7、 安装完证书后,请清除浏览器的缓存、视频APP的全部数据。如果访问网页弹出不安全提示,请检查证书是否安装正确。
|
||||
6、 安装完证书后,请清除浏览器的缓存、视频APP的全部数据。如果访问网页弹出不安全提示,请检查证书是否安装正确。
|
||||
<br />
|
||||
8、 如果想在多台路由器上使用一个证书,请先备份证书,然后再在另一个路由器上恢复证书即可。
|
||||
7、 如果想在多台路由器上使用一个证书,请先备份证书,然后再在另一个路由器上恢复证书即可。
|
||||
<br />
|
||||
</div>
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@ config global
|
|||
option koolproxy_mode '1'
|
||||
option koolproxy_host '1'
|
||||
option koolproxy_rules 'koolproxy.txt daily.txt kp.dat user.txt'
|
||||
option thirdparty_rules 'yhosts.txt'
|
||||
option koolproxy_ipv6 '0'
|
||||
option time_update 'nil'
|
||||
|
||||
|
@ -18,7 +17,7 @@ config acl_rule
|
|||
config rss_rule
|
||||
option file 'ikprule.txt'
|
||||
option name 'IKPR规则'
|
||||
option url 'https://igodros.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/ikprule.txt'
|
||||
option url 'https://iwrt.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/ikprule.txt'
|
||||
option load '1'
|
||||
config usetips
|
||||
option load '0'
|
||||
|
|
|
@ -100,7 +100,7 @@ creat_ipset() {
|
|||
# Load ipset netfilter kernel modules and kernel modules
|
||||
ipset -! create white_kp_list nethash
|
||||
ipset -! create black_koolproxy iphash
|
||||
cat $KP_DIR/data/rules/yhosts.txt $KP_DIR/data/rules/adg.txt $KP_DIR/data/rules/steven.txt $KP_DIR/data/rules/anti-ad.txt $KP_DIR/data/rules/koolproxy.txt $KP_DIR/data/rules/adgk.txt $KP_DIR/data/rules/daily.txt $KP_DIR/data/rules/user.txt | grep -Eo "(.\w+\:[1-9][0-9]{1,4})/" | grep -Eo "([0-9]{1,5})" | sort -un | sed -e '$a\80' -e '$a\443' | sed -e "s/^/-A kp_full_port &/g" -e "1 i\-N kp_full_port bitmap:port range 0-65535 " | ipset -R -!
|
||||
cat $KP_DIR/data/rules/yhosts.txt $KP_DIR/data/rules/adg.txt $KP_DIR/data/rules/steven.txt $KP_DIR/data/rules/antiad.txt $KP_DIR/data/rules/koolproxy.txt $KP_DIR/data/rules/adgk.txt $KP_DIR/data/rules/daily.txt $KP_DIR/data/rules/user.txt | grep -Eo "(.\w+\:[1-9][0-9]{1,4})/" | grep -Eo "([0-9]{1,5})" | sort -un | sed -e '$a\80' -e '$a\443' | sed -e "s/^/-A kp_full_port &/g" -e "1 i\-N kp_full_port bitmap:port range 0-65535 " | ipset -R -!
|
||||
}
|
||||
|
||||
add_white_black_ip() {
|
||||
|
@ -231,7 +231,7 @@ load_rules() {
|
|||
steven.txt)
|
||||
sed -i '7s/0/1/g' $KP_DIR/data/source.list
|
||||
;;
|
||||
anti-ad.txt)
|
||||
antiad.txt)
|
||||
sed -i '8s/0/1/g' $KP_DIR/data/source.list
|
||||
;;
|
||||
adgk.txt)
|
||||
|
|
|
@ -5,5 +5,5 @@
|
|||
1|yhosts.txt||Yhosts规则
|
||||
1|adg.txt||AdGuard规则
|
||||
1|steven.txt||Steven规则
|
||||
1|anti-ad.txt||Anti-AD规则
|
||||
1|antiad.txt||AntiAD规则
|
||||
1|adgk.txt||坂本规则
|
||||
|
|
|
@ -111,26 +111,26 @@ update_rss_rules() {
|
|||
|
||||
update_rules() {
|
||||
echo $(date "+%F %T"): ------------------- 内置规则更新 ------------------- >>$LOGFILE
|
||||
wget 'https://igodros.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/kp.dat' -q -O $KP_DIR/data/rules/kp.dat
|
||||
wget 'https://igodros.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/daily.txt' -q -O $KP_DIR/data/rules/daily.txt
|
||||
wget 'https://igodros.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/koolproxy.txt' -q -O $KP_DIR/data/rules/koolproxy.txt
|
||||
wget 'https://igodros.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/yhosts.txt' -q -O $KP_DIR/data/rules/yhosts.txt
|
||||
wget 'https://igodros.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/steven.txt' -q -O $KP_DIR/data/rules/steven.txt
|
||||
wget 'https://igodros.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/adg.txt' -q -O $KP_DIR/data/rules/adg.txt
|
||||
wget 'https://igodros.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/antiad.txt' -q -O $KP_DIR/data/rules/anti-ad.txt
|
||||
wget 'https://igodros.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/adgk.txt' -q -O $KP_DIR/data/rules/adgk.txt
|
||||
wget 'https://igodros.coding.net/p/ikoolproxy/d/rules/git/raw/master/ipsetadblock/koolproxy_ipset.conf' -q -O $KP_DIR/koolproxy_ipset.conf
|
||||
wget 'https://igodros.coding.net/p/ikoolproxy/d/rules/git/raw/master/ipsetadblock/dnsmasq.adblock' -q -O $KP_DIR/dnsmasq.adblock
|
||||
wget 'https://iwrt.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/kp.dat' -q -O $KP_DIR/data/rules/kp.dat
|
||||
wget 'https://iwrt.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/daily.txt' -q -O $KP_DIR/data/rules/daily.txt
|
||||
wget 'https://iwrt.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/koolproxy.txt' -q -O $KP_DIR/data/rules/koolproxy.txt
|
||||
wget 'https://iwrt.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/yhosts.txt' -q -O $KP_DIR/data/rules/yhosts.txt
|
||||
wget 'https://iwrt.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/steven.txt' -q -O $KP_DIR/data/rules/steven.txt
|
||||
wget 'https://iwrt.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/adg.txt' -q -O $KP_DIR/data/rules/adg.txt
|
||||
wget 'https://iwrt.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/antiad.txt' -q -O $KP_DIR/data/rules/antiad.txt
|
||||
wget 'https://iwrt.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/adgk.txt' -q -O $KP_DIR/data/rules/adgk.txt
|
||||
wget 'https://iwrt.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/koolproxy_ipset.conf' -q -O $KP_DIR/koolproxy_ipset.conf
|
||||
wget 'https://iwrt.coding.net/p/ikoolproxy/d/rules/git/raw/master/rules/dnsmasq.adblock' -q -O $KP_DIR/dnsmasq.adblock
|
||||
adg_rules_local=`cat /usr/share/koolproxy/data/rules/adg.txt | sed -n '4p'|awk '{print $4}'`
|
||||
steven_rules_local=`cat /usr/share/koolproxy/data/rules/steven.txt | sed -n '2p'|awk '{print $3,$4,$5,$6}'`
|
||||
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`
|
||||
antiad_rules_local=`cat /usr/share/koolproxy/data/rules/antiad.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}'`
|
||||
adgk_rules_local=`cat /usr/share/koolproxy/data/rules/adgk.txt | sed -n '1p'|awk '{print $3}'`
|
||||
echo $(date "+%F %T"): -------------------AdGuard规则 Version $adg_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------Steven规则 Version $steven_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"): -------------------AntiAD规则 Version $antiad_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------坂本规则 Version $adgk_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): -------------------静态规则 Version $koolproxy_rules_local >>$LOGFILE
|
||||
echo $(date "+%F %T"): ------------------- 内置规则更新成功! ------------------- >>$LOGFILE
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
## 更新:2021年11月30日:
|
||||
1、更名以及更换规则地址。强烈建议重新安装最新版本。
|
||||
2、更新IPKR。
|
||||
|
||||
## 更新:2021年11月21日:
|
||||
1、剔除ABP,乘风视频和fanboy这三个无效规则,替换AdGuard,steven,坂本手机规则。
|
||||
2、新增订阅规则为IKPR。
|
||||
|
|
|
@ -74,15 +74,15 @@
|
|||
{
|
||||
"description": "DDNS.TO内网穿透",
|
||||
"tags": [
|
||||
"net",
|
||||
"tool"
|
||||
"net",
|
||||
"tool"
|
||||
],
|
||||
"entry": "/cgi-bin/luci/admin/services/ddnsto",
|
||||
"author": "xiaobao",
|
||||
"depends": [
|
||||
"ddnsto",
|
||||
"luci-app-ddnsto",
|
||||
"luci-i18n-ddnsto-zh-cn"
|
||||
"ddnsto",
|
||||
"luci-app-ddnsto",
|
||||
"luci-i18n-ddnsto-zh-cn"
|
||||
],
|
||||
"installed": true,
|
||||
"title": "DDNS.TO",
|
||||
|
@ -117,5 +117,25 @@
|
|||
(文件上传表单,支持文件扩展名".ipk,.run")
|
||||
|
||||
|
||||
{"code":0, "stdout":"", "stderr":""}
|
||||
```
|
||||
|
||||
9. 检查iStore自身更新
|
||||
```
|
||||
GET /cgi-bin/luci/admin/store/check_self_upgrade
|
||||
|
||||
|
||||
{"code":500, "msg":"Internal Error"}
|
||||
{"code":200, "msg":"1.1.2"}
|
||||
{"code":304, "msg":""}
|
||||
```
|
||||
|
||||
1. 更新iStore自身
|
||||
> 检查iStore自身更新接口返回code为200时才调用这个接口
|
||||
```
|
||||
POST /cgi-bin/luci/admin/store/do_self_upgrade
|
||||
token=xxx
|
||||
|
||||
|
||||
{"code":0, "stdout":"", "stderr":""}
|
||||
```
|
||||
|
|
|
@ -9,13 +9,13 @@ LUCI_TITLE:=LuCI based ipk store
|
|||
LUCI_DESCRIPTION:=luci-app-store is a ipk store developed by LinkEase team
|
||||
LUCI_DEPENDS:=+curl
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=0.1.1
|
||||
PKG_VERSION:=0.1.2
|
||||
PKG_RELEASE:=1
|
||||
PKG_MAINTAINER:=jjm2473 <jjm2473@gmail.com>
|
||||
|
||||
LUCI_BUILD_DEPENDS:=app-store-ui/host
|
||||
|
||||
TARGET_CONFIGURE_OPTS = FRONTEND_DIST="$(BUILD_DIR_HOST)/app-store-ui/dist" APP_STORE_VERSION="$(PKG_VERSION)"
|
||||
TARGET_CONFIGURE_OPTS = FRONTEND_DIST="$(BUILD_DIR_HOST)/app-store-ui/dist" APP_STORE_VERSION="$(PKG_VERSION)-$(PKG_RELEASE)"
|
||||
|
||||
define Package/luci-app-store/conffiles
|
||||
/etc/.app_store.id
|
||||
|
|
|
@ -18,6 +18,8 @@ function index()
|
|||
entry({"admin", "store", "log"}, call("store_log"))
|
||||
entry({"admin", "store", "uid"}, call("action_user_id"))
|
||||
entry({"admin", "store", "upload"}, post("store_upload"))
|
||||
entry({"admin", "store", "check_self_upgrade"}, call("check_self_upgrade"))
|
||||
entry({"admin", "store", "do_self_upgrade"}, post("do_self_upgrade"))
|
||||
for _, action in ipairs({"update", "install", "upgrade", "remove"}) do
|
||||
store_api(action, true)
|
||||
end
|
||||
|
@ -46,6 +48,36 @@ local function user_id()
|
|||
return id
|
||||
end
|
||||
|
||||
local function is_exec(cmd)
|
||||
local nixio = require "nixio"
|
||||
local os = require "os"
|
||||
local fs = require "nixio.fs"
|
||||
|
||||
local oflags = nixio.open_flags("rdonly", "creat")
|
||||
local lock, code, msg = nixio.open(target, oflags)
|
||||
if not lock then
|
||||
return 255, "", "Open lock failed: " .. msg
|
||||
end
|
||||
|
||||
-- Acquire lock
|
||||
local stat, code, msg = lock:lock("tlock")
|
||||
if not stat then
|
||||
lock:close()
|
||||
return 255, "", "Lock failed: " .. msg
|
||||
end
|
||||
|
||||
local r = os.execute(cmd .. " >/tmp/log/istore.stdout 2>/tmp/log/istore.stderr")
|
||||
local e = fs.readfile("/tmp/log/istore.stderr")
|
||||
local o = fs.readfile("/tmp/log/istore.stdout")
|
||||
|
||||
fs.unlink("/tmp/log/istore.stderr")
|
||||
fs.unlink("/tmp/log/istore.stdout")
|
||||
lock:lock("ulock")
|
||||
lock:close()
|
||||
|
||||
return r, o or "", e or ""
|
||||
end
|
||||
|
||||
function redirect_index()
|
||||
luci.http.redirect(luci.dispatcher.build_url(unpack(page_index)))
|
||||
end
|
||||
|
@ -71,25 +103,47 @@ function action_user_id()
|
|||
luci.http.write_json(user_id())
|
||||
end
|
||||
|
||||
function check_self_upgrade()
|
||||
local ret = {
|
||||
code = 500,
|
||||
msg = "Unknown"
|
||||
}
|
||||
local r,o,e = is_exec(myopkg .. " check_self_upgrade")
|
||||
if r ~= 0 then
|
||||
ret.msg = e
|
||||
else
|
||||
ret.code = o == "" and 304 or 200
|
||||
ret.msg = o
|
||||
end
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(ret)
|
||||
end
|
||||
|
||||
function do_self_upgrade()
|
||||
local code, out, err, ret
|
||||
code,out,err = is_exec(myopkg .. " do_self_upgrade")
|
||||
ret = {
|
||||
code = code,
|
||||
stdout = out,
|
||||
stderr = err
|
||||
}
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(ret)
|
||||
end
|
||||
|
||||
-- Internal action function
|
||||
local function _action(exe, cmd, ...)
|
||||
local os = require "os"
|
||||
local fs = require "nixio.fs"
|
||||
|
||||
|
||||
local pkg = ""
|
||||
for k, v in pairs({...}) do
|
||||
pkg = pkg .. " '" .. v:gsub("'", "") .. "'"
|
||||
end
|
||||
|
||||
local c = "%s %s %s >/tmp/log/istore.stdout 2>/tmp/log/istore.stderr" %{ exe, cmd, pkg }
|
||||
local r = os.execute(c)
|
||||
local e = fs.readfile("/tmp/log/istore.stderr")
|
||||
local o = fs.readfile("/tmp/log/istore.stdout")
|
||||
local c = "%s %s %s" %{ exe, cmd, pkg }
|
||||
|
||||
fs.unlink("/tmp/log/istore.stderr")
|
||||
fs.unlink("/tmp/log/istore.stdout")
|
||||
|
||||
return r, o or "", e or ""
|
||||
return is_exec(c)
|
||||
end
|
||||
|
||||
function store_action(param)
|
||||
|
|
|
@ -8,6 +8,10 @@ OPKG_CONF_DIR=${IS_ROOT}/etc/opkg
|
|||
FEEDS_SERVER=https://istore.linkease.com/repo
|
||||
ARCH=`opkg -f /dev/null print-architecture | grep -v 'arch all' | grep -v 'arch noarch' | cut -d ' ' -f2`
|
||||
|
||||
# for istore self upgrade
|
||||
ISTORE_PKG=luci-app-store
|
||||
ISTORE_INDEX=https://istore.linkease.com/repo/all/store/Packages.gz
|
||||
|
||||
action=${1}
|
||||
shift
|
||||
|
||||
|
@ -23,11 +27,8 @@ is_init() {
|
|||
echo >> ${IS_ROOT}/etc/opkg_o.conf
|
||||
echo "lists_dir ext ${LISTS_DIR_O}" >> ${IS_ROOT}/etc/opkg_o.conf
|
||||
|
||||
[ -e ${IS_ROOT}/var/lock ] || {
|
||||
cp -a /etc/opkg ${IS_ROOT}/etc/
|
||||
|
||||
ln -s /var/lock ${IS_ROOT}/var/lock
|
||||
}
|
||||
cp -au /etc/opkg ${IS_ROOT}/etc/
|
||||
[ -e ${IS_ROOT}/var/lock ] || ln -s /var/lock ${IS_ROOT}/var/lock
|
||||
}
|
||||
|
||||
opkg_wrap() {
|
||||
|
@ -43,6 +44,37 @@ update() {
|
|||
return 0
|
||||
}
|
||||
|
||||
update_if_outdate() {
|
||||
local idle_t=$((`date '+%s'` - `date -r ${IS_ROOT}/.last_force_ts '+%s' 2>/dev/null || echo '0'`))
|
||||
[ $idle_t -gt ${1:-120} ] || return 1
|
||||
update || return 1
|
||||
touch ${IS_ROOT}/.last_force_ts
|
||||
return 0
|
||||
}
|
||||
|
||||
check_self_upgrade() {
|
||||
local newest=`curl --connect-timeout 2 --max-time 5 -s ${ISTORE_INDEX} | gunzip | grep -FA10 "Package: ${ISTORE_PKG}" | grep -Fm1 'Version: ' | sed 's/^Version: //'`
|
||||
local current=`grep -Fm1 'Version: ' /usr/lib/opkg/info/${ISTORE_PKG}.control | sed 's/^Version: //'`
|
||||
if [ "v$newest" = "v" -o "v$current" = "v" ]; then
|
||||
echo "Check version failed!" >&2
|
||||
exit 255
|
||||
fi
|
||||
if [ "$newest" != "$current" ]; then
|
||||
echo "$newest"
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
do_self_upgrade() {
|
||||
check_mtime || return 1
|
||||
if opkg_wrap info ${ISTORE_PKG} | grep -qF not-installed ; then
|
||||
true
|
||||
else
|
||||
update_if_outdate || return 1
|
||||
fi
|
||||
opkg_wrap upgrade ${ISTORE_PKG}
|
||||
}
|
||||
|
||||
check_mtime() {
|
||||
find ${OPKG_CONF_DIR}/arch.conf -mtime -1 2>/dev/null | grep -q . || update
|
||||
}
|
||||
|
@ -50,22 +82,17 @@ check_mtime() {
|
|||
wrapped_in_update() {
|
||||
check_mtime || return 1
|
||||
opkg_wrap "$@" && return 0
|
||||
local idle_t=$((`date '+%s'` - `date -r ${IS_ROOT}/.last_force_ts '+%s' 2>/dev/null || echo '0'`))
|
||||
[ $idle_t -gt 120 ] || return 1
|
||||
update || return 1
|
||||
touch ${IS_ROOT}/.last_force_ts
|
||||
update_if_outdate || return 1
|
||||
opkg_wrap "$@"
|
||||
}
|
||||
|
||||
new_upgrade() {
|
||||
check_mtime || return 1
|
||||
local metapkg=`echo "$@" | sed 's/ /\n/g' | grep -F app-meta-`
|
||||
if [ -n "$metapkg" ] && opkg_wrap info $metapkg | grep -qF not-installed ; then
|
||||
if [ -z "$metapkg" ] || opkg_wrap info $metapkg | grep -qF not-installed ; then
|
||||
true
|
||||
else
|
||||
local idle_t=$((`date '+%s'` - `date -r ${IS_ROOT}/.last_force_ts '+%s' 2>/dev/null || echo '0'`))
|
||||
if [ $idle_t -gt 120 ]; then
|
||||
update && touch ${IS_ROOT}/.last_force_ts
|
||||
fi
|
||||
update_if_outdate
|
||||
fi
|
||||
wrapped_in_update upgrade "$@"
|
||||
}
|
||||
|
@ -74,9 +101,13 @@ usage() {
|
|||
echo "usage: is-opkg sub-command [arguments...]"
|
||||
echo "where sub-command is one of:"
|
||||
echo " update Update list of available packages"
|
||||
echo " upgrade <pkgs> Upgrade packages"
|
||||
echo " upgrade <pkgs> Upgrade package(s)"
|
||||
echo " install <pkgs> Install package(s)"
|
||||
echo " remove <pkgs> Remove package(s)"
|
||||
echo " remove <pkgs|regexp> Remove package(s)"
|
||||
echo " info [pkg|regexp] Display all info for <pkg>"
|
||||
echo " list-upgradable List installed and upgradable packages"
|
||||
echo " check_self_upgrade Check iStore upgrade"
|
||||
echo " do_self_upgrade Upgrade iStore"
|
||||
}
|
||||
|
||||
is_init >/dev/null 2>&1
|
||||
|
@ -94,6 +125,18 @@ case $action in
|
|||
"remove")
|
||||
opkg_wrap --autoremove --force-removal-of-dependent-packages remove "$@"
|
||||
;;
|
||||
"info")
|
||||
opkg_wrap info "$@"
|
||||
;;
|
||||
"list-upgradable")
|
||||
opkg_wrap list-upgradable
|
||||
;;
|
||||
"check_self_upgrade")
|
||||
check_self_upgrade
|
||||
;;
|
||||
"do_self_upgrade")
|
||||
do_self_upgrade
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
;;
|
||||
|
|
Loading…
Reference in New Issue