update-11.30

This commit is contained in:
github-actions[bot] 2021-11-30 20:26:09 +08:00
parent 84b74d9669
commit f42ccfe2de
32 changed files with 236 additions and 118 deletions

View File

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

View File

@ -1,4 +1,5 @@
module("luci.controller.autoreboot",package.seeall)
function index()
if not nixio.fs.access("/etc/config/autoreboot") then
return

View File

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

View File

@ -4,4 +4,3 @@ config login
option hour '5'
option week '3'
option enable '0'

View File

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

View File

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

View File

@ -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有些是KPRKPR PlusKPR 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

View File

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

View File

@ -0,0 +1 @@

View File

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

View File

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

View File

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

View File

@ -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必须填写其中一项。")

View File

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

View File

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

View File

@ -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>';
}
}
}

View File

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

View File

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

View File

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

View File

@ -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||坂本规则

View File

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

View File

@ -1,3 +1,7 @@
## 更新2021年11月30日
1、更名以及更换规则地址。强烈建议重新安装最新版本。
2、更新IPKR。
## 更新2021年11月21日
1、剔除ABP乘风视频和fanboy这三个无效规则替换AdGuardsteven坂本手机规则。
2、新增订阅规则为IKPR。

View File

@ -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":""}
```

View File

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

View File

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

View File

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