diff --git a/dependency/.github/workflows/T2 build.yml b/dependency/.github/workflows/T2 build.yml index 93bffc28..47dc9a5e 100644 --- a/dependency/.github/workflows/T2 build.yml +++ b/dependency/.github/workflows/T2 build.yml @@ -29,7 +29,7 @@ jobs: env: ARCH: ${{ matrix.arch }}-${{ matrix.sdk }} FEEDNAME: packages_ci - PACKAGES: luci-app-passwall luci-app-passwall2 luci-app-ssr-plus luci-app-bypass brook hysteria ipt2socks pdnsd-alt redsocks2 shadow-tls trojan tuic-client xray-plugin v2ray-core v2ray-geodata naiveproxy sing-box + PACKAGES: luci-app-homeproxy luci-app-passwall luci-app-passwall2 luci-app-ssr-plus luci-app-bypass brook hysteria ipt2socks pdnsd-alt redsocks2 shadow-tls trojan tuic-client xray-plugin v2ray-core v2ray-geodata naiveproxy sing-box NO_REFRESH_CHECK: true IGNORE_ERRORS: true diff --git a/dependency/.github/workflows/T9 build.yml b/dependency/.github/workflows/T9 build.yml index 8532ec9d..26078ea7 100644 --- a/dependency/.github/workflows/T9 build.yml +++ b/dependency/.github/workflows/T9 build.yml @@ -68,7 +68,7 @@ jobs: env: ARCH: ${{ matrix.arch }}-${{ matrix.sdk }} FEEDNAME: packages_ci - PACKAGES: luci-app-passwall luci-app-passwall2 luci-app-ssr-plus luci-app-bypass brook hysteria ipt2socks pdnsd-alt redsocks2 shadow-tls trojan tuic-client xray-plugin v2ray-core v2ray-geodata naiveproxy sing-box + PACKAGES: luci-app-homeproxy luci-app-passwall luci-app-passwall2 luci-app-ssr-plus luci-app-bypass brook hysteria ipt2socks pdnsd-alt redsocks2 shadow-tls trojan tuic-client xray-plugin v2ray-core v2ray-geodata naiveproxy sing-box NO_REFRESH_CHECK: true IGNORE_ERRORS: true diff --git a/kenzok/luci-app-homeproxy/LICENSE b/dependency/luci-app-homeproxy/LICENSE similarity index 100% rename from kenzok/luci-app-homeproxy/LICENSE rename to dependency/luci-app-homeproxy/LICENSE diff --git a/kenzok/luci-app-homeproxy/Makefile b/dependency/luci-app-homeproxy/Makefile similarity index 100% rename from kenzok/luci-app-homeproxy/Makefile rename to dependency/luci-app-homeproxy/Makefile diff --git a/kenzok/luci-app-homeproxy/README b/dependency/luci-app-homeproxy/README similarity index 100% rename from kenzok/luci-app-homeproxy/README rename to dependency/luci-app-homeproxy/README diff --git a/kenzok/luci-app-homeproxy/htdocs/luci-static/resources/homeproxy.js b/dependency/luci-app-homeproxy/htdocs/luci-static/resources/homeproxy.js similarity index 100% rename from kenzok/luci-app-homeproxy/htdocs/luci-static/resources/homeproxy.js rename to dependency/luci-app-homeproxy/htdocs/luci-static/resources/homeproxy.js diff --git a/kenzok/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js b/dependency/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js similarity index 100% rename from kenzok/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js rename to dependency/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js diff --git a/kenzok/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js b/dependency/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js similarity index 100% rename from kenzok/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js rename to dependency/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js diff --git a/kenzok/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js b/dependency/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js similarity index 100% rename from kenzok/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js rename to dependency/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js diff --git a/kenzok/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/status.js b/dependency/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/status.js similarity index 100% rename from kenzok/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/status.js rename to dependency/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/status.js diff --git a/kenzok/luci-app-homeproxy/po/templates/homeproxy.pot b/dependency/luci-app-homeproxy/po/templates/homeproxy.pot similarity index 100% rename from kenzok/luci-app-homeproxy/po/templates/homeproxy.pot rename to dependency/luci-app-homeproxy/po/templates/homeproxy.pot diff --git a/kenzok/luci-app-homeproxy/po/zh_Hans/homeproxy.po b/dependency/luci-app-homeproxy/po/zh_Hans/homeproxy.po similarity index 100% rename from kenzok/luci-app-homeproxy/po/zh_Hans/homeproxy.po rename to dependency/luci-app-homeproxy/po/zh_Hans/homeproxy.po diff --git a/kenzok/luci-app-homeproxy/root/etc/capabilities/homeproxy.json b/dependency/luci-app-homeproxy/root/etc/capabilities/homeproxy.json similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/capabilities/homeproxy.json rename to dependency/luci-app-homeproxy/root/etc/capabilities/homeproxy.json diff --git a/kenzok/luci-app-homeproxy/root/etc/config/homeproxy b/dependency/luci-app-homeproxy/root/etc/config/homeproxy similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/config/homeproxy rename to dependency/luci-app-homeproxy/root/etc/config/homeproxy diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.txt b/dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.txt similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.txt rename to dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.txt diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.ver b/dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.ver similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.ver rename to dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.ver diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.txt b/dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.txt similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.txt rename to dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.txt diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.ver b/dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.ver similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.ver rename to dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.ver diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.txt b/dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.txt similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.txt rename to dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.txt diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.ver b/dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.ver similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.ver rename to dependency/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.ver diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.txt b/dependency/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.txt similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.txt rename to dependency/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.txt diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.ver b/dependency/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.ver similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.ver rename to dependency/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.ver diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/clean_log.sh b/dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/clean_log.sh similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/clean_log.sh rename to dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/clean_log.sh diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_post.ut b/dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_post.ut similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_post.ut rename to dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_post.ut diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut b/dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut rename to dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc b/dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc rename to dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_server.uc b/dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_server.uc similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_server.uc rename to dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_server.uc diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/homeproxy.uc b/dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/homeproxy.uc similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/homeproxy.uc rename to dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/homeproxy.uc diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/update_crond.sh b/dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/update_crond.sh similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/update_crond.sh rename to dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/update_crond.sh diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/update_resources.sh b/dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/update_resources.sh similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/update_resources.sh rename to dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/update_resources.sh diff --git a/kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc b/dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc rename to dependency/luci-app-homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc diff --git a/kenzok/luci-app-homeproxy/root/etc/init.d/homeproxy b/dependency/luci-app-homeproxy/root/etc/init.d/homeproxy similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/init.d/homeproxy rename to dependency/luci-app-homeproxy/root/etc/init.d/homeproxy diff --git a/kenzok/luci-app-homeproxy/root/etc/uci-defaults/luci-homeproxy b/dependency/luci-app-homeproxy/root/etc/uci-defaults/luci-homeproxy similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/uci-defaults/luci-homeproxy rename to dependency/luci-app-homeproxy/root/etc/uci-defaults/luci-homeproxy diff --git a/kenzok/luci-app-homeproxy/root/etc/uci-defaults/luci-homeproxy-migration b/dependency/luci-app-homeproxy/root/etc/uci-defaults/luci-homeproxy-migration similarity index 100% rename from kenzok/luci-app-homeproxy/root/etc/uci-defaults/luci-homeproxy-migration rename to dependency/luci-app-homeproxy/root/etc/uci-defaults/luci-homeproxy-migration diff --git a/kenzok/luci-app-homeproxy/root/usr/share/luci/menu.d/luci-app-homeproxy.json b/dependency/luci-app-homeproxy/root/usr/share/luci/menu.d/luci-app-homeproxy.json similarity index 100% rename from kenzok/luci-app-homeproxy/root/usr/share/luci/menu.d/luci-app-homeproxy.json rename to dependency/luci-app-homeproxy/root/usr/share/luci/menu.d/luci-app-homeproxy.json diff --git a/kenzok/luci-app-homeproxy/root/usr/share/rpcd/acl.d/luci-app-homeproxy.json b/dependency/luci-app-homeproxy/root/usr/share/rpcd/acl.d/luci-app-homeproxy.json similarity index 100% rename from kenzok/luci-app-homeproxy/root/usr/share/rpcd/acl.d/luci-app-homeproxy.json rename to dependency/luci-app-homeproxy/root/usr/share/rpcd/acl.d/luci-app-homeproxy.json diff --git a/kenzok/luci-app-homeproxy/root/usr/share/rpcd/ucode/luci.homeproxy b/dependency/luci-app-homeproxy/root/usr/share/rpcd/ucode/luci.homeproxy similarity index 100% rename from kenzok/luci-app-homeproxy/root/usr/share/rpcd/ucode/luci.homeproxy rename to dependency/luci-app-homeproxy/root/usr/share/rpcd/ucode/luci.homeproxy diff --git a/dependency/luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js b/dependency/luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js index b8bc2aa4..da9965fc 100644 --- a/dependency/luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js +++ b/dependency/luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js @@ -37,6 +37,12 @@ function renderStatus(isRunning) { } return view.extend({ + load: function() { + return Promise.all([ + L.resolveDefault(fs.exec('/usr/bin/mosdns', ['version']), null), + ]); + }, + handleFlushCache: function (m, section_id, ev) { return fs.exec('/usr/share/mosdns/mosdns.sh', ['flush']) .then(function (lazy_cache) { @@ -49,10 +55,14 @@ return view.extend({ }); }, - render: function () { - var m, s, o; + render: function (basic) { + var m, s, o, v; + v = ''; - m = new form.Map('mosdns', _('MosDNS'), + if (basic[0] && basic[0].code === 0) { + v = basic[0].stdout.trim(); + } + m = new form.Map('mosdns', _('MosDNS') + ' ' + v, _('MosDNS is a plugin-based DNS forwarder/traffic splitter.')); s = m.section(form.TypedSection); diff --git a/dependency/luci-app-mosdns/root/usr/share/rpcd/acl.d/luci-app-mosdns.json b/dependency/luci-app-mosdns/root/usr/share/rpcd/acl.d/luci-app-mosdns.json index 5e95749b..3dc05af2 100644 --- a/dependency/luci-app-mosdns/root/usr/share/rpcd/acl.d/luci-app-mosdns.json +++ b/dependency/luci-app-mosdns/root/usr/share/rpcd/acl.d/luci-app-mosdns.json @@ -14,6 +14,7 @@ "/etc/mosdns/rule/redirect.txt": [ "read" ], "/etc/mosdns/rule/streaming.txt": [ "read" ], "/etc/mosdns/rule/whitelist.txt": [ "read" ], + "/usr/bin/mosdns": [ "exec" ], "/usr/share/mosdns/mosdns.sh": [ "exec" ] }, "ubus": { diff --git a/dependency/mosdns/Makefile b/dependency/mosdns/Makefile index 7d1f6ff7..62d32d19 100644 --- a/dependency/mosdns/Makefile +++ b/dependency/mosdns/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mosdns -PKG_VERSION:=5.3.1 +PKG_VERSION:=5.3.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/IrineSistiana/mosdns/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=7c8c795de794df52fd2b51214826aea9ebde0dcd0da78d8dda9cc5e4ab98cd80 +PKG_HASH:=1d7eeaa735cb48ed2d436797d7f2a82541699f74647cd293ee411a72cdc65f5f PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILE:=LICENSE diff --git a/dependency/mosdns/patches/201-compatible-with-go1.20.patch b/dependency/mosdns/patches/201-compatible-with-go1.20.patch deleted file mode 100644 index 9099c694..00000000 --- a/dependency/mosdns/patches/201-compatible-with-go1.20.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 329ba9ca89d25da58d1b51b8107f164beae816bb Mon Sep 17 00:00:00 2001 -From: sbwml -Date: Tue, 19 Sep 2023 21:15:12 +0800 -Subject: [PATCH 1/5] compatible with go1.20 - ---- - go.mod | 6 ++---- - go.sum | 4 ++-- - 2 files changed, 4 insertions(+), 6 deletions(-) - -diff --git a/go.mod b/go.mod -index 1839776..1b4cc4b 100644 ---- a/go.mod -+++ b/go.mod -@@ -1,8 +1,6 @@ - module github.com/IrineSistiana/mosdns/v5 - --go 1.21 -- --toolchain go1.21.1 -+go 1.20 - - require ( - github.com/IrineSistiana/go-bytes-pool v0.0.0-20230918115058-c72bd9761c57 -@@ -45,7 +43,7 @@ require ( - github.com/magiconair/properties v1.8.7 // indirect - github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect - github.com/mdlayher/netlink v1.7.2 // indirect -- github.com/mdlayher/socket v0.5.0 // indirect -+ github.com/mdlayher/socket v0.4.1 // indirect - github.com/onsi/ginkgo/v2 v2.13.0 // indirect - github.com/pelletier/go-toml/v2 v2.1.0 // indirect - github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect -diff --git a/go.sum b/go.sum -index 41a59b2..ad95d6d 100644 ---- a/go.sum -+++ b/go.sum -@@ -173,8 +173,8 @@ github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvls - github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= - github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/g= - github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw= --github.com/mdlayher/socket v0.5.0 h1:ilICZmJcQz70vrWVes1MFera4jGiWNocSkykwwoy3XI= --github.com/mdlayher/socket v0.5.0/go.mod h1:WkcBFfvyG8QENs5+hfQPl1X6Jpd2yeLIYgrGFmJiJxI= -+github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U= -+github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= - github.com/miekg/dns v1.1.56 h1:5imZaSeoRNvpM9SzWNhEcP9QliKiz20/dA2QabIGVnE= - github.com/miekg/dns v1.1.56/go.mod h1:cRm6Oo2C8TY9ZS/TqsSrseAcncm74lfK5G+ikN2SWWY= - github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= --- -2.42.0 - diff --git a/dependency/mosdns/patches/203-add-response-for-bad-request-in-ServeHTTP-handler.patch b/dependency/mosdns/patches/203-add-response-for-bad-request-in-ServeHTTP-handler.patch index 463e96cd..38b7974b 100644 --- a/dependency/mosdns/patches/203-add-response-for-bad-request-in-ServeHTTP-handler.patch +++ b/dependency/mosdns/patches/203-add-response-for-bad-request-in-ServeHTTP-handler.patch @@ -7,11 +7,9 @@ Subject: [PATCH 3/5] add response for bad request in ServeHTTP handler pkg/server/http_handler.go | 1 + 1 file changed, 1 insertion(+) -diff --git a/pkg/server/http_handler.go b/pkg/server/http_handler.go -index 5a41314..8f33b3f 100644 --- a/pkg/server/http_handler.go +++ b/pkg/server/http_handler.go -@@ -93,6 +93,7 @@ func (h *HttpHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { +@@ -93,6 +93,7 @@ func (h *HttpHandler) ServeHTTP(w http.R if err != nil { h.warnErr(req, "invalid request", err) w.WriteHeader(http.StatusBadRequest) @@ -19,6 +17,3 @@ index 5a41314..8f33b3f 100644 return } --- -2.42.0 - diff --git a/dependency/mosdns/patches/204-black_hole-apply-Fisher-Yates-shuffle-algorithm-to-r.patch b/dependency/mosdns/patches/204-black_hole-apply-Fisher-Yates-shuffle-algorithm-to-r.patch index f623815b..fa18e86c 100644 --- a/dependency/mosdns/patches/204-black_hole-apply-Fisher-Yates-shuffle-algorithm-to-r.patch +++ b/dependency/mosdns/patches/204-black_hole-apply-Fisher-Yates-shuffle-algorithm-to-r.patch @@ -8,8 +8,6 @@ Subject: [PATCH 4/5] black_hole: apply Fisher-Yates shuffle algorithm to plugin/executable/black_hole/black_hole.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) -diff --git a/plugin/executable/black_hole/black_hole.go b/plugin/executable/black_hole/black_hole.go -index 775253d..f955019 100644 --- a/plugin/executable/black_hole/black_hole.go +++ b/plugin/executable/black_hole/black_hole.go @@ -27,6 +27,8 @@ import ( @@ -21,7 +19,7 @@ index 775253d..f955019 100644 ) const PluginType = "black_hole" -@@ -40,6 +42,7 @@ var _ sequence.Executable = (*BlackHole)(nil) +@@ -40,6 +42,7 @@ var _ sequence.Executable = (*BlackHole) type BlackHole struct { ipv4 []netip.Addr ipv6 []netip.Addr @@ -29,7 +27,7 @@ index 775253d..f955019 100644 } // QuickSetup format: [ipv4|ipv6] ... -@@ -65,9 +68,21 @@ func NewBlackHole(ips []string) (*BlackHole, error) { +@@ -65,9 +68,21 @@ func NewBlackHole(ips []string) (*BlackH return b, nil } @@ -51,6 +49,3 @@ index 775253d..f955019 100644 if r := b.Response(qCtx.Q()); r != nil { qCtx.SetResponse(r) } --- -2.42.0 - diff --git a/dependency/mosdns/patches/205-format-logtime.patch b/dependency/mosdns/patches/205-format-logtime.patch index 204bc8e2..1628ad04 100644 --- a/dependency/mosdns/patches/205-format-logtime.patch +++ b/dependency/mosdns/patches/205-format-logtime.patch @@ -7,8 +7,6 @@ Subject: [PATCH 5/5] format logtime mlog/logger.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) -diff --git a/mlog/logger.go b/mlog/logger.go -index 861f091..1508db0 100644 --- a/mlog/logger.go +++ b/mlog/logger.go @@ -21,9 +21,11 @@ package mlog @@ -24,7 +22,7 @@ index 861f091..1508db0 100644 ) type LogConfig struct { -@@ -64,10 +66,18 @@ func NewLogger(lc LogConfig) (*zap.Logger, error) { +@@ -64,10 +66,18 @@ func NewLogger(lc LogConfig) (*zap.Logge out = stderr } @@ -46,6 +44,3 @@ index 861f091..1508db0 100644 } // L is a global logger. --- -2.42.0 - diff --git a/dependency/shadowsocks-rust/Makefile b/dependency/shadowsocks-rust/Makefile index db89a28b..9a7db239 100644 --- a/dependency/shadowsocks-rust/Makefile +++ b/dependency/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.20.3 +PKG_VERSION:=1.20.4 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -21,29 +21,29 @@ endif ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=80967bf5852b9215b865849c1ecbcf3d2766aaa4e49cf8a0b35cb3d7760e72a3 + PKG_HASH:=e6c4a001b1e4200d9c43ce50acfe57cbbb4a89b69bf16feb42085e0fa49c4344 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=05406ece4eaac711d3f131db58f1136878fdec3790628fc4b7f0e2ec9907e008 + PKG_HASH:=c789f726124b36587f624cf84b18761da6ec9b769e50e70d68ba9fbf1d211748 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=e666cfdd814a5328a3a49098415fb2c0acbb3103c2161f2b878f73ffe553a54f + PKG_HASH:=f0df08c3b6f5518b6f7d7e812381c8d66b6785220997921d4fa8a7c770e650b5 endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=c60473b6f7cdcd6d334e8b919607d0933a2ffaa0ce7f2894a197099689752f90 + PKG_HASH:=2d66d809136e83e691d4385237a48dd388a51173dc7983bf637f224ba94a7fd3 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=c524f3c3c6a45c91c8eba0a68c6543862586e41540e260c17cbdb046da895621 + PKG_HASH:=bc8a262da2dfeedcec2dd38f9c82f8431f3c134d6959bea7bb6d624f4640f81e else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=a8f63990d2d3e6d1008edc21cacd63a65fcf5777a9ad1288c26c1d5650848879 + PKG_HASH:=88f9ec52e35b9759c1160c78f0ff29783ba9352967323630a98724a83e0825fb else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=e156d24555a00d934816b450e2f519d3042e8891a2c9a0d637b19bc2758a354b + PKG_HASH:=924d9fce437b95045c3eba559e8570f0de2857e56f3f1814d46db218ccef70e0 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy diff --git a/dependency/v2ray-geodata/Makefile b/dependency/v2ray-geodata/Makefile index 05c67a1f..2ea3cdcb 100644 --- a/dependency/v2ray-geodata/Makefile +++ b/dependency/v2ray-geodata/Makefile @@ -12,22 +12,22 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202408101831 +GEOIP_VER:=202408150441 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=0080f836cd88744fc37a8ec13f36e189814d8f95d8072c557bdab04f700f51e8 + HASH:=e5d4ab4f969366d0d4941874fe1a3371920da5bec4a3eab0a08b3ddb6aa3aede endef -GEOSITE_VER:=20240810010807 +GEOSITE_VER:=20240814034058 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=f9e7fab895dc57e2c40d0e12a774dc45a3dc83f43eab5185757bb3f9e5b08010 + HASH:=cdb9e804886774f683f80c4f2819df8eebf67fd40f48406ac368286ae360ac0a endef GEOSITE_IRAN_VER:=202408120030 diff --git a/kenzok/alist/files/alist.init b/kenzok/alist/files/alist.init index 9cde3298..157aa479 100755 --- a/kenzok/alist/files/alist.init +++ b/kenzok/alist/files/alist.init @@ -5,6 +5,7 @@ START=99 USE_PROCD=1 PROG=/usr/bin/alist +LOG_FILE=/var/log/alist.log get_config() { config_get_bool enabled $1 enabled 1 @@ -84,7 +85,7 @@ start_service() { [ "$mysql" -eq 1 ] && database=$mysql_type || database=sqlite3 set_firewall - true > $temp_dir/alist.log + true > $LOG_FILE # init config json_init @@ -134,7 +135,7 @@ start_service() { # log json_add_object "log" json_add_boolean "enable" "$log" - json_add_string "name" "$temp_dir/alist.log" + json_add_string "name" "$LOG_FILE" json_add_int "max_size" "10" json_add_int "max_backups" "5" json_add_int "max_age" "28" @@ -187,7 +188,7 @@ start_service() { json_dump > $data_dir/config.json - procd_open_instance + procd_open_instance alist procd_set_param command $PROG procd_append_param command server --data $data_dir procd_set_param stdout 0 @@ -195,7 +196,13 @@ start_service() { procd_set_param respawn procd_set_param limits core="unlimited" procd_set_param limits nofile="200000 200000" - procd_close_instance + procd_close_instance alist +} + +reload_service() { + stop + sleep 3 + start } service_triggers() { diff --git a/kenzok/luci-app-alist/Makefile b/kenzok/luci-app-alist/Makefile index 9edcd81d..e23ae803 100644 --- a/kenzok/luci-app-alist/Makefile +++ b/kenzok/luci-app-alist/Makefile @@ -6,19 +6,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-alist -PKG_VERSION:=1.0.13 +PKG_VERSION:=1.1.0 PKG_RELEASE:=1 LUCI_TITLE:=LuCI support for alist -LUCI_DEPENDS:=+alist +luci-compat - -define Package/$(PKG_NAME)/postinst -#!/bin/sh -[ -n "${IPKG_INSTROOT}" ] || { - ( . /etc/uci-defaults/50-luci-alist ) && rm -f /etc/uci-defaults/50-luci-alist - exit 0 -} -endef +LUCI_DEPENDS:=+alist include $(TOPDIR)/feeds/luci/luci.mk diff --git a/kenzok/luci-app-alist/htdocs/luci-static/resources/view/alist/basic.js b/kenzok/luci-app-alist/htdocs/luci-static/resources/view/alist/basic.js new file mode 100644 index 00000000..bb40c41c --- /dev/null +++ b/kenzok/luci-app-alist/htdocs/luci-static/resources/view/alist/basic.js @@ -0,0 +1,199 @@ +'use strict'; +'require form'; +'require fs'; +'require poll'; +'require rpc'; +'require uci'; +'require view'; + +var callServiceList = rpc.declare({ + object: 'service', + method: 'list', + params: ['name'], + expect: { '': {} } +}); + +function getServiceStatus() { + return L.resolveDefault(callServiceList('alist'), {}).then(function (res) { + var isRunning = false; + try { + isRunning = res['alist']['instances']['alist']['running']; + } catch (e) { } + return isRunning; + }); +} + +function renderStatus(isRunning, protocol, webport) { + var spanTemp = '%s %s'; + var renderHTML; + if (isRunning) { + var button = String.format('', + _('Open Web Interface'), protocol, window.location.hostname, webport); + renderHTML = spanTemp.format('green', 'Alist', _('RUNNING')) + button; + } else { + renderHTML = spanTemp.format('red', 'Alist', _('NOT RUNNING')); + } + + return renderHTML; +} + +return view.extend({ + load: function () { + return Promise.all([ + uci.load('alist') + ]); + }, + + handleResetPassword: async function (data) { + var data_dir = uci.get(data[0], '@alist[0]', 'data_dir') || '/etc/alist'; + try { + var newpassword = await fs.exec('/usr/bin/alist', ['admin', 'random', '--data', data_dir]); + var new_password = newpassword.stderr.match(/password:\s*(\S+)/)[1]; + const textArea = document.createElement('textarea'); + textArea.value = new_password; + document.body.appendChild(textArea); + textArea.select(); + document.execCommand('copy'); + document.body.removeChild(textArea); + alert(_('Username:') + 'admin\n' + _('New Password:') + new_password + '\n\n' + _('New password has been copied to clipboard.')); + } catch (error) { + console.error('Failed to reset password: ', error); + } + }, + + render: function (data) { + var m, s, o; + var webport = uci.get(data[0], '@alist[0]', 'port') || '5244'; + var ssl = uci.get(data[0], '@alist[0]', 'ssl') || '0'; + var protocol; + if (ssl === '0') { + protocol = 'http:'; + } else if (ssl === '1') { + protocol = 'https:'; + } + + m = new form.Map('alist', _('Alist'), + _('A file list program that supports multiple storage.') + + '
' + + _('User Manual') + + ''); + + s = m.section(form.TypedSection); + s.anonymous = true; + s.addremove = false; + + s.render = function () { + poll.add(function () { + return L.resolveDefault(getServiceStatus()).then(function (res) { + var view = document.getElementById('service_status'); + view.innerHTML = renderStatus(res, protocol, webport); + }); + }); + + return E('div', { class: 'cbi-section', id: 'status_bar' }, [ + E('p', { id: 'service_status' }, _('Collecting data...')) + ]); + } + + s = m.section(form.NamedSection, '@alist[0]', 'alist'); + + o = s.option(form.Flag, 'enabled', _('Enabled')); + o.default = o.disabled; + o.rmempty = false; + + o = s.option(form.Value, 'port', _('Port')); + o.datatype = 'and(port,min(1))'; + o.default = '5244'; + o.rmempty = false; + + o = s.option(form.Flag, 'log', _('Enable Logs')); + o.default = 1; + o.rmempty = false; + + o = s.option(form.Flag, 'ssl', _('Enable SSL')); + o.rmempty = false; + + o = s.option(form.Value, 'ssl_cert', _('SSL cert'), + _('SSL certificate file path')); + o.rmempty = false; + o.depends('ssl', '1'); + + o = s.option(form.Value, 'ssl_key', _('SSL key'), + _('SSL key file path')); + o.rmempty = false; + o.depends('ssl', '1'); + + o = s.option(form.Flag, 'mysql', _('Enable Database')); + o.rmempty = false; + + o = s.option(form.ListValue, 'mysql_type', _('Database Type')); + o.default = 'mysql'; + o.depends('mysql', '1'); + o.value('mysql', _('MySQL')); + o.value('postgres', _('PostgreSQL')); + + o = s.option(form.Value, 'mysql_host', _('Database Host')); + o.depends('mysql', '1'); + + o = s.option(form.Value, 'mysql_port', _('Database Port')); + o.datatype = 'port'; + o.default = '3306'; + o.depends('mysql', '1'); + + o = s.option(form.Value, 'mysql_username', _('Database Username')); + o.depends('mysql', '1'); + + o = s.option(form.Value, 'mysql_password', _('Database Password')); + o.depends('mysql', '1'); + + o = s.option(form.Value, 'mysql_database', _('Database Name')); + o.depends('mysql', '1'); + + o = s.option(form.Value, 'mysql_table_prefix', _('Database Table Prefix')); + o.default = 'x_'; + o.depends('mysql', '1'); + + o = s.option(form.Value, 'mysql_ssl_mode', _('Database SSL Mode')); + o.depends('mysql', '1'); + + o = s.option(form.Value, 'mysql_dsn', _('Database DSN')); + o.depends('mysql', '1'); + + o = s.option(form.Flag, 'allow_wan', _('Allow Access From Internet')); + o.rmempty = false; + + o = s.option(form.Value, 'site_url', _('Site URL'), + _('When the web is reverse proxied to a subdirectory, this option must be filled out to ensure proper functioning of the web. Do not include \'/\' at the end of the URL')); + + o = s.option(form.Value, 'max_connections', _('Max Connections'), + _('0 is unlimited, It is recommend to set a low number of concurrency (10-20) for poor performance device')); + o.default = '0'; + o.datatype = 'uinteger'; + o.rmempty = false; + + o = s.option(form.Value, 'token_expires_in', _('Login Validity Period (hours)')); + o.datatype = 'uinteger'; + o.default = '48'; + o.rmempty = false; + + o = s.option(form.Value, 'delayed_start', _('Delayed Start (seconds)')); + o.datatype = 'uinteger'; + o.default = '0'; + o.rmempty = false; + + o = s.option(form.Value, 'data_dir', _('Data directory')); + o.default = '/etc/alist'; + + o = s.option(form.Value, 'temp_dir', _('Cache directory')); + o.default = '/tmp/alist'; + o.rmempty = false; + + o = s.option(form.Button, '_newpassword', _('Reset Password'), + _('Generate a new random password.')); + o.inputtitle = _('Reset Password'); + o.inputstyle = 'apply'; + o.onclick = L.bind(this.handleResetPassword, this, data); + + return m.render(); + } +}); diff --git a/kenzok/luci-app-alist/htdocs/luci-static/resources/view/alist/logs.js b/kenzok/luci-app-alist/htdocs/luci-static/resources/view/alist/logs.js new file mode 100644 index 00000000..6077c3c3 --- /dev/null +++ b/kenzok/luci-app-alist/htdocs/luci-static/resources/view/alist/logs.js @@ -0,0 +1,76 @@ +'use strict'; +'require dom'; +'require fs'; +'require poll'; +'require view'; + +function pollLog(e) { + return Promise.all([ + fs.read_direct('/var/log/alist.log', 'text').then(function (res) { + return res.trim().split(/\n/).join('\n').replace(/\u001b\[33mWARN\u001b\[0m/g, '').replace(/\u001b\[36mINFO\u001b\[0m/g, ''); + }), + ]).then(function (data) { + var logTextarea = E('textarea', { 'class': 'cbi-input-textarea', 'wrap': 'off', 'readonly': 'readonly', 'style': 'width: calc(100% - 20px);height: 500px;margin: 10px;overflow-y: scroll;' }, [ + data[0] || _('No log data.') + ]); + + // Store the current scroll position + var storedScrollTop = e.querySelector('textarea') ? e.querySelector('textarea').scrollTop : null; + + dom.content(e, logTextarea); + + // If the storedScrollTop is not null, it means we have a previous scroll position + if (storedScrollTop !== null) { + logTextarea.scrollTop = storedScrollTop; + } + + // Add event listener to save the scroll position when scrolling stops + var timer; + logTextarea.addEventListener('scroll', function () { + clearTimeout(timer); + timer = setTimeout(function () { + storeScrollPosition(logTextarea.scrollTop); + }, 150); + }); + + function storeScrollPosition(scrollPos) { + localStorage.setItem("scrollPosition", JSON.stringify({ "log": scrollPos })); + } + + }); +}; + +return view.extend({ + handleCleanLogs: function () { + return fs.write('/var/log/alist.log', '') + .catch(function (e) { ui.addNotification(null, E('p', e.message)) }); + }, + + render: function () { + var log_textarea = E('div', { 'id': 'log_textarea' }, + E('img', { + 'src': L.resource(['icons/loading.gif']), + 'alt': _('Loading'), + 'style': 'vertical-align:middle' + }, _('Collecting data...')) + ); + + poll.add(pollLog.bind(this, log_textarea)); + var clear_logs_button = E('input', { 'class': 'btn cbi-button-action', 'type': 'button', 'style': 'margin-left: 10px; margin-top: 10px;', 'value': _('Clear logs') }); + clear_logs_button.addEventListener('click', this.handleCleanLogs.bind(this)); + return E([ + E('div', { 'class': 'cbi-map' }, [ + E('div', { 'class': 'cbi-section' }, [ + clear_logs_button, + log_textarea, + E('div', { 'style': 'text-align:right' }, + E('small', {}, _('Refresh every %s seconds.').format(L.env.pollinterval)) + ) + ])]) + ]); + }, + + handleSave: null, + handleSaveApply: null, + handleReset: null +}); diff --git a/kenzok/luci-app-alist/luasrc/controller/alist.lua b/kenzok/luci-app-alist/luasrc/controller/alist.lua deleted file mode 100644 index d611d5cf..00000000 --- a/kenzok/luci-app-alist/luasrc/controller/alist.lua +++ /dev/null @@ -1,50 +0,0 @@ -module("luci.controller.alist", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/alist") then - return - end - - local page = entry({"admin", "nas", "alist"}, alias("admin", "nas", "alist", "basic"), _("Alist"), 20) - page.dependent = true - page.acl_depends = { "luci-app-alist" } - - entry({"admin", "nas"}, firstchild(), "NAS", 44).dependent = false - entry({"admin", "nas", "alist", "basic"}, cbi("alist/basic"), _("Basic Setting"), 1).leaf = true - entry({"admin", "nas", "alist", "log"}, cbi("alist/log"), _("Logs"), 2).leaf = true - entry({"admin", "nas", "alist", "alist_status"}, call("alist_status")).leaf = true - entry({"admin", "nas", "alist", "get_log"}, call("get_log")).leaf = true - entry({"admin", "nas", "alist", "clear_log"}, call("clear_log")).leaf = true - entry({"admin", "nas", "alist", "admin_info"}, call("admin_info")).leaf = true -end - -function alist_status() - local sys = require "luci.sys" - local uci = require "luci.model.uci".cursor() - local port = tonumber(uci:get_first("alist", "alist", "port")) - - local status = { - running = (sys.call("pidof alist >/dev/null") == 0), - port = (port or 5244) - } - - luci.http.prepare_content("application/json") - luci.http.write_json(status) -end - -function get_log() - luci.http.write(luci.sys.exec("cat $(uci -q get alist.@alist[0].temp_dir)/alist.log")) -end - -function clear_log() - luci.sys.call("cat /dev/null > $(uci -q get alist.@alist[0].temp_dir)/alist.log") -end - -function admin_info() - local random = luci.sys.exec("/usr/bin/alist --data $(uci -q get alist.@alist[0].data_dir) admin random 2>&1") - local username = string.match(random, "username: (%S+)") - local password = string.match(random, "password: (%S+)") - - luci.http.prepare_content("application/json") - luci.http.write_json({username = username, password = password}) -end diff --git a/kenzok/luci-app-alist/luasrc/model/cbi/alist/basic.lua b/kenzok/luci-app-alist/luasrc/model/cbi/alist/basic.lua deleted file mode 100644 index ec5587a8..00000000 --- a/kenzok/luci-app-alist/luasrc/model/cbi/alist/basic.lua +++ /dev/null @@ -1,113 +0,0 @@ -local m, s - -m = Map("alist", translate("Alist"), translate("A file list program that supports multiple storage.") .. "
" .. [[]] .. translate("User Manual") .. [[]]) - -m:section(SimpleSection).template = "alist/alist_status" - -s = m:section(TypedSection, "alist") -s.addremove = false -s.anonymous = true - -o = s:option(Flag, "enabled", translate("Enabled")) -o.rmempty = false - -o = s:option(Value, "port", translate("Port")) -o.datatype = "and(port,min(1))" -o.rmempty = false -o.default = "5244" - -o = s:option(Flag, "log", translate("Enable Logs")) -o.default = 1 -o.rmempty = false - -o = s:option(Flag, "ssl", translate("Enable SSL")) -o.rmempty=false - -o = s:option(Value,"ssl_cert", translate("SSL cert"), translate("SSL certificate file path")) -o.datatype = "file" -o:depends("ssl", "1") - -o = s:option(Value,"ssl_key", translate("SSL key"), translate("SSL key file path")) -o.datatype = "file" -o:depends("ssl", "1") - -o = s:option(Flag, "mysql", translate("Enable Database")) -o.rmempty=false - -o = s:option(ListValue, "mysql_type", translate("Database Type")) -o.datatype = "string" -o:value("mysql", translate("MySQL")) -o:value("postgres", translate("PostgreSQL")) -o.default = "mysql" -o:depends("mysql", "1") - -o = s:option(Value,"mysql_host", translate("Database Host")) -o.datatype = "string" -o:depends("mysql", "1") - -o = s:option(Value,"mysql_port", translate("Database Port")) -o.datatype = "and(port,min(1))" -o.default = "3306" -o:depends("mysql", "1") - -o = s:option(Value,"mysql_username", translate("Database Username")) -o.datatype = "string" -o:depends("mysql", "1") - -o = s:option(Value,"mysql_password", translate("Database Password")) -o.datatype = "string" -o.password = true -o:depends("mysql", "1") - -o = s:option(Value,"mysql_database", translate("Database Name")) -o.datatype = "string" -o:depends("mysql", "1") - -o = s:option(Value,"mysql_table_prefix", translate("Database Table Prefix")) -o.datatype = "string" -o.default = "x_" -o:depends("mysql", "1") - -o = s:option(Value,"mysql_ssl_mode", translate("Database SSL Mode")) -o.datatype = "string" -o:depends("mysql", "1") - -o = s:option(Value,"mysql_dsn", translate("Database DSN")) -o.datatype = "string" -o:depends("mysql", "1") - -o = s:option(Flag, "allow_wan", translate("Allow Access From Internet")) -o.rmempty = false - -o = s:option(Value, "site_url", translate("Site URL"), translate("When the web is reverse proxied to a subdirectory, this option must be filled out to ensure proper functioning of the web. Do not include '/' at the end of the URL")) -o.datatype = "string" - -o = s:option(Value, "max_connections", translate("Max Connections"), translate("0 is unlimited, It is recommend to set a low number of concurrency (10-20) for poor performance device")) -o.datatype = "and(uinteger,min(0))" -o.default = "0" -o.rmempty = false - -o = s:option(Value, "token_expires_in", translate("Login Validity Period (hours)")) -o.datatype = "and(uinteger,min(1))" -o.default = "48" -o.rmempty = false - -o = s:option(Value, "delayed_start", translate("Delayed Start (seconds)")) -o.datatype = "and(uinteger,min(0))" -o.default = "0" -o.rmempty = false - -o = s:option(Value, "data_dir", translate("Data directory")) -o.datatype = "string" -o.default = "/etc/alist" - -o = s:option(Value, "temp_dir", translate("Cache directory")) -o.datatype = "string" -o.default = "/tmp/alist" -o.rmempty = false - -o = s:option(Button, "admin_info", translate("Reset Password")) -o.rawhtml = true -o.template = "alist/admin_info" - -return m diff --git a/kenzok/luci-app-alist/luasrc/model/cbi/alist/log.lua b/kenzok/luci-app-alist/luasrc/model/cbi/alist/log.lua deleted file mode 100644 index 4b6c36f8..00000000 --- a/kenzok/luci-app-alist/luasrc/model/cbi/alist/log.lua +++ /dev/null @@ -1,5 +0,0 @@ -m = Map("alist") - -m:append(Template("alist/alist_log")) - -return m diff --git a/kenzok/luci-app-alist/luasrc/view/alist/admin_info.htm b/kenzok/luci-app-alist/luasrc/view/alist/admin_info.htm deleted file mode 100644 index ba34e91b..00000000 --- a/kenzok/luci-app-alist/luasrc/view/alist/admin_info.htm +++ /dev/null @@ -1,26 +0,0 @@ -<%+cbi/valueheader%> - - -<%=self.value%> -<%+cbi/valuefooter%> \ No newline at end of file diff --git a/kenzok/luci-app-alist/luasrc/view/alist/alist_log.htm b/kenzok/luci-app-alist/luasrc/view/alist/alist_log.htm deleted file mode 100644 index 5ec4a78b..00000000 --- a/kenzok/luci-app-alist/luasrc/view/alist/alist_log.htm +++ /dev/null @@ -1,35 +0,0 @@ - -
- - -
diff --git a/kenzok/luci-app-alist/luasrc/view/alist/alist_status.htm b/kenzok/luci-app-alist/luasrc/view/alist/alist_status.htm deleted file mode 100644 index 6be654ea..00000000 --- a/kenzok/luci-app-alist/luasrc/view/alist/alist_status.htm +++ /dev/null @@ -1,36 +0,0 @@ -<% - local uci = require 'luci.model.uci'.cursor() - ssl = uci:get_first('alist', 'alist', 'ssl') - if ssl == '1' then - protocol="https://" - else - protocol="http://" - end -%> - - - - -
-

- <%:Collecting data...%> -

-
diff --git a/kenzok/luci-app-homeproxy/po/zh-cn b/kenzok/luci-app-alist/po/zh-cn similarity index 100% rename from kenzok/luci-app-homeproxy/po/zh-cn rename to kenzok/luci-app-alist/po/zh-cn diff --git a/kenzok/luci-app-alist/po/zh_Hans b/kenzok/luci-app-alist/po/zh_Hans deleted file mode 120000 index 41451e4a..00000000 --- a/kenzok/luci-app-alist/po/zh_Hans +++ /dev/null @@ -1 +0,0 @@ -zh-cn \ No newline at end of file diff --git a/kenzok/luci-app-alist/po/zh-cn/alist.po b/kenzok/luci-app-alist/po/zh_Hans/alist.po similarity index 91% rename from kenzok/luci-app-alist/po/zh-cn/alist.po rename to kenzok/luci-app-alist/po/zh_Hans/alist.po index 8f7ea132..c01cf1ba 100644 --- a/kenzok/luci-app-alist/po/zh-cn/alist.po +++ b/kenzok/luci-app-alist/po/zh_Hans/alist.po @@ -67,14 +67,17 @@ msgstr "清空日志" msgid "Reset Password" msgstr "重置密码" -msgid "Reset" -msgstr "重置" +msgid "Generate a new random password." +msgstr "随机生成一个新密码。" msgid "Username:" msgstr "用户名:" -msgid "Password:" -msgstr "密码:" +msgid "New Password:" +msgstr "新密码:" + +msgid "New password has been copied to clipboard." +msgstr "新密码已复制到剪贴板。" msgid "Login Validity Period (hours)" msgstr "登录有效期(小时)" diff --git a/kenzok/luci-app-alist/root/etc/uci-defaults/50-luci-alist b/kenzok/luci-app-alist/root/etc/uci-defaults/luci-app-alist similarity index 100% rename from kenzok/luci-app-alist/root/etc/uci-defaults/50-luci-alist rename to kenzok/luci-app-alist/root/etc/uci-defaults/luci-app-alist diff --git a/kenzok/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json b/kenzok/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json new file mode 100644 index 00000000..295910a9 --- /dev/null +++ b/kenzok/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json @@ -0,0 +1,36 @@ +{ + "admin/nas": { + "title": "NAS", + "order": 44, + "action": { + "type": "firstchild" + } + }, + "admin/nas/alist": { + "title": "Alist", + "order": 20, + "action": { + "type": "firstchild" + }, + "depends": { + "acl": [ "luci-app-alist" ], + "uci": { "alist": true } + } + }, + "admin/nas/alist/basic": { + "title": "Basic Setting", + "order": 30, + "action": { + "type": "view", + "path": "alist/basic" + } + }, + "admin/nas/alist/logs": { + "title": "Logs", + "order": 40, + "action": { + "type": "view", + "path": "alist/logs" + } + } +} diff --git a/kenzok/luci-app-alist/root/usr/share/rpcd/acl.d/luci-app-alist.json b/kenzok/luci-app-alist/root/usr/share/rpcd/acl.d/luci-app-alist.json index 98ba9422..46d12af5 100644 --- a/kenzok/luci-app-alist/root/usr/share/rpcd/acl.d/luci-app-alist.json +++ b/kenzok/luci-app-alist/root/usr/share/rpcd/acl.d/luci-app-alist.json @@ -2,9 +2,19 @@ "luci-app-alist": { "description": "Grant UCI access for luci-app-alist", "read": { + "file": { + "/usr/bin/alist": [ "exec" ], + "/var/log/alist.log": [ "read" ] + }, + "ubus": { + "service": [ "list" ] + }, "uci": [ "alist" ] }, "write": { + "file": { + "/var/log/alist.log": [ "write" ] + }, "uci": [ "alist" ] } } diff --git a/kenzok/luci-app-wechatpush/root/usr/share/serverchan/serverchan b/kenzok/luci-app-wechatpush/root/usr/share/serverchan/serverchan index 157f211e..5a19c62f 100755 --- a/kenzok/luci-app-wechatpush/root/usr/share/serverchan/serverchan +++ b/kenzok/luci-app-wechatpush/root/usr/share/serverchan/serverchan @@ -678,9 +678,9 @@ function rand_geturl(){ echo `curl -k -s -w "%{http_code}" -m 5 ${url_str} -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.58" -o /dev/null` } local check=`getcheck` - while [ -z "$check" ] || [[ $check -ne 200 && $check -ne 301 && $check -ne 302 ]]; do + while [ -z "$check" ] || [[ $check -ne 200 && $check -ne 202 && $check -ne 301 && $check -ne 302 ]]; do local check=`getcheck` - if [ ! -z "$check" ] && [[ $check -eq 200 || $check -eq 301 || $check -eq 302 ]]; then + if [ ! -z "$check" ] && [[ $check -eq 200 || $check -eq 202 || $check -eq 301 || $check -eq 302 ]]; then [ ! -z "$network_enable" ] && [ "$network_enable" -eq "404" ] && echo "`date "+%Y-%m-%d %H:%M:%S"` 【网络状态】网络恢复正常.." >> ${logfile} local network_enable="200" else