diff --git a/htdocs/luci-static/resources/view/homeproxy/node.js b/htdocs/luci-static/resources/view/homeproxy/node.js index d84e2c8c..062c5bcd 100644 --- a/htdocs/luci-static/resources/view/homeproxy/node.js +++ b/htdocs/luci-static/resources/view/homeproxy/node.js @@ -1331,6 +1331,9 @@ return view.extend({ o.depends({'filter_nodes': 'disabled', '!reverse': true}); o.rmempty = false; + o = s.taboption('subscription', form.Value, 'custom_ua', _('Custom UA')); + o.placeholder = 'Wget/1.21 (HomeProxy, like v2rayN)'; + o = s.taboption('subscription', form.Flag, 'allow_insecure', _('Allow insecure'), _('Allow insecure connection by default when add nodes from subscriptions.') + '
' + diff --git a/root/etc/homeproxy/scripts/homeproxy.uc b/root/etc/homeproxy/scripts/homeproxy.uc index b846c434..ef0329fa 100644 --- a/root/etc/homeproxy/scripts/homeproxy.uc +++ b/root/etc/homeproxy/scripts/homeproxy.uc @@ -74,11 +74,11 @@ export function getTime(epoch) { }; -export function wGET(url) { +export function wGET(url, ua) { if (!url || type(url) !== 'string') return null; - const output = executeCommand(`/usr/bin/wget -qO- --user-agent 'Wget/1.21 (HomeProxy, like v2rayN)' --timeout=10 ${shellQuote(url)}`) || {}; + const output = executeCommand(`/usr/bin/wget -qO- --user-agent ${shellQuote(ua || 'Wget/1.21 (HomeProxy, like v2rayN)')} --timeout=10 ${shellQuote(url)}`) || {}; return trim(output.stdout); }; /* Utilities end */ diff --git a/root/etc/homeproxy/scripts/update_subscriptions.uc b/root/etc/homeproxy/scripts/update_subscriptions.uc index d10639f0..abf1698f 100755 --- a/root/etc/homeproxy/scripts/update_subscriptions.uc +++ b/root/etc/homeproxy/scripts/update_subscriptions.uc @@ -30,7 +30,8 @@ const ucimain = 'config', ucinode = 'node', ucisubscription = 'subscription'; -const allow_insecure = uci.get(uciconfig, ucisubscription, 'allow_insecure') || '0', +const custom_ua = uci.get(uciconfig, ucisubscription, 'custom_ua'), + allow_insecure = uci.get(uciconfig, ucisubscription, 'allow_insecure') || '0', filter_mode = uci.get(uciconfig, ucisubscription, 'filter_nodes') || 'disabled', filter_keywords = uci.get(uciconfig, ucisubscription, 'filter_keywords') || [], packet_encoding = uci.get(uciconfig, ucisubscription, 'packet_encoding') || 'xudp', @@ -457,7 +458,7 @@ function main() { const groupHash = calcStringMD5(url); node_cache[groupHash] = {}; - const res = wGET(url); + const res = wGET(url, custom_ua); if (isEmpty(res)) { log(sprintf('Failed to fetch resources from %s.', url)); continue;