From a65cd2a69627e9b456f9de6f23dafc19a9d225fc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 4 Sep 2026 03:19:40 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9B=85=20Sync=202026-09-04=2003:19:40?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luci-app-wechatpush/Makefile | 2 +- .../resources/view/wechatpush/advanced.js | 40 +++++++++++-------- .../share/rpcd/acl.d/luci-app-wechatpush.json | 2 +- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/luci-app-wechatpush/Makefile b/luci-app-wechatpush/Makefile index e5dd0fb4..326feec4 100755 --- a/luci-app-wechatpush/Makefile +++ b/luci-app-wechatpush/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-wechatpush PKG_VERSION:=3.6.12 -PKG_RELEASE:=6 +PKG_RELEASE:=7 PKG_MAINTAINER:=tty228 PKG_CONFIG_DEPENDS:= \ diff --git a/luci-app-wechatpush/htdocs/luci-static/resources/view/wechatpush/advanced.js b/luci-app-wechatpush/htdocs/luci-static/resources/view/wechatpush/advanced.js index 28f08e09..88585b42 100644 --- a/luci-app-wechatpush/htdocs/luci-static/resources/view/wechatpush/advanced.js +++ b/luci-app-wechatpush/htdocs/luci-static/resources/view/wechatpush/advanced.js @@ -16,25 +16,34 @@ return view.extend({ load: function () { return Promise.all([ - this.callHostHints(), - fs.read('/proc/net/arp') + this.callHostHints() ]); }, - parseArp: function (data) { - var lines = data.split('\n'), - hosts = []; + parseHostHints: function (data) { + var hosts = []; - for (var i = 1; i < lines.length; i++) { - var columns = lines[i].replace(/ +/g, ' ').split(' '); + Object.keys(data || {}).forEach(function (mac) { + var hint = data[mac] || {}, + ipaddrs = hint.ipaddrs || hint.ipv4 || []; - if (columns.length >= 6) { - hosts.push({ - ip: columns[0], - mac: columns[3] - }); - } - } + if (!Array.isArray(ipaddrs)) + ipaddrs = [ ipaddrs ]; + + ipaddrs.forEach(function (ip) { + var octets = (typeof(ip) === 'string' && /^\d{1,3}(\.\d{1,3}){3}$/.test(ip)) + ? ip.split('.').map(Number) : []; + + if (octets.length === 4 && octets.every(function (octet) { + return octet >= 0 && octet <= 255; + })) { + hosts.push({ + ip: ip, + mac: mac + }); + } + }); + }); // Sort hosts array by IP address hosts.sort(function (a, b) { @@ -62,8 +71,7 @@ return view.extend({ }, render: function (data) { - var arpData = data[1], - hosts = this.parseArp(arpData), + var hosts = this.parseHostHints(data[0]), m, s, o, programPath = '/usr/share/wechatpush/wechatpush'; diff --git a/luci-app-wechatpush/root/usr/share/rpcd/acl.d/luci-app-wechatpush.json b/luci-app-wechatpush/root/usr/share/rpcd/acl.d/luci-app-wechatpush.json index 233fc574..50350eb6 100644 --- a/luci-app-wechatpush/root/usr/share/rpcd/acl.d/luci-app-wechatpush.json +++ b/luci-app-wechatpush/root/usr/share/rpcd/acl.d/luci-app-wechatpush.json @@ -4,13 +4,13 @@ "read": { "file": { "/etc/init.d/wechatpush": [ "exec" ], - "/proc/net/arp": [ "read" ], "/usr/share/wechatpush/wechatpush": [ "exec" ], "/tmp/wechatpush/*": [ "read" ], "/usr/share/wechatpush/api/*": [ "read" ], "/usr/libexec/wechatpush-call": [ "exec" ] }, "ubus": { + "luci-rpc": [ "getHostHints" ], "service": [ "list" ] }, "uci": [ "wechatpush" ]