From 5495ba2c5e2770dae5030925f2bf37a04fb52372 Mon Sep 17 00:00:00 2001 From: gitea-action Date: Wed, 5 Feb 2025 18:00:24 +0800 Subject: [PATCH] luci-app-passwall: sync upstream last commit: https://github.com/xiaorouji/openwrt-passwall/commit/1ec1db4151eb591e0e1f1351dd10a24c3037842a --- luci-app-passwall/root/usr/share/passwall/subscribe.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/luci-app-passwall/root/usr/share/passwall/subscribe.lua index daabe24b4..785827316 100755 --- a/luci-app-passwall/root/usr/share/passwall/subscribe.lua +++ b/luci-app-passwall/root/usr/share/passwall/subscribe.lua @@ -1685,18 +1685,19 @@ local execute = function() local access_mode = value.access_mode local result = (not access_mode) and "自动" or (access_mode == "direct" and "直连访问" or (access_mode == "proxy" and "通过代理" or "自动")) log('正在订阅:【' .. remark .. '】' .. url .. ' [' .. result .. ']') - local raw = curl(url, "/tmp/" .. cfgid, ua, access_mode) + local tmp_file = "/tmp/" .. cfgid + local raw = curl(url, tmp_file, ua, access_mode) if raw == 0 then - local f = io.open("/tmp/" .. cfgid, "r") + local f = io.open(tmp_file, "r") local stdout = f:read("*all") f:close() raw = trim(stdout) local old_md5 = value.md5 or "" - local new_md5 = luci.sys.exec(string.format("echo -n $(echo '%s' | md5sum | awk '{print $1}')", raw)) + local new_md5 = luci.sys.exec("[ -f " .. tmp_file .. " ] && md5sum " .. tmp_file .. " | awk '{print $1}' || echo 0") + os.remove(tmp_file) if old_md5 == new_md5 then log('订阅:【' .. remark .. '】没有变化,无需更新。') else - os.remove("/tmp/" .. cfgid) parse_link(raw, "2", remark, cfgid) uci:set(appname, cfgid, "md5", new_md5) end