mirror of
https://github.com/kenzok8/small-package
synced 2025-01-08 11:17:34 +08:00
update 2024-11-30 16:24:33
This commit is contained in:
parent
4f20be79c5
commit
dac101d274
@ -113,6 +113,17 @@ o = s:option(Flag, "apple_optimization", translate("Apple domains optimization")
|
||||
o.rmempty = false
|
||||
o.default = "1"
|
||||
|
||||
o = s:option(Value, "apple_url", translate("Apple Domains Update url"))
|
||||
o:value("https://fastly.jsdelivr.net/gh/felixonmars/dnsmasq-china-list/apple.china.conf", translate("felixonmars/dnsmasq-china-list"))
|
||||
o.default = "https://fastly.jsdelivr.net/gh/felixonmars/dnsmasq-china-list/apple.china.conf"
|
||||
o:depends("apple_optimization", "1")
|
||||
|
||||
o = s:option(Value, "apple_dns", translate("Apple Domains DNS"), translate("If empty, Not change Apple domains parsing DNS (Default is empty)"))
|
||||
o.rmempty = true
|
||||
o.default = ""
|
||||
o.datatype = "ip4addr"
|
||||
o:depends("apple_optimization", "1")
|
||||
|
||||
o = s:option(Flag, "adblock", translate("Enable adblock"))
|
||||
o.rmempty = false
|
||||
|
||||
|
@ -944,7 +944,7 @@ if is_finded("xray") then
|
||||
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw", reality = true})
|
||||
|
||||
-- [[ uTLS ]]--
|
||||
o = s:option(Value, "fingerprint", translate("Finger Print"))
|
||||
o = s:option(ListValue, "fingerprint", translate("Finger Print"))
|
||||
o.default = "chrome"
|
||||
o:value("chrome", translate("chrome"))
|
||||
o:value("firefox", translate("firefox"))
|
||||
|
@ -48,6 +48,10 @@ if nixio.fs.access("/etc/ssrplus/china_ssr.txt") then
|
||||
ip_count = tonumber(luci.sys.exec("cat /etc/ssrplus/china_ssr.txt | wc -l"))
|
||||
end
|
||||
|
||||
if nixio.fs.access("/etc/ssrplus/applechina.conf") then
|
||||
apple_count = tonumber(luci.sys.exec("cat /etc/ssrplus/applechina.conf | wc -l"))
|
||||
end
|
||||
|
||||
if nixio.fs.access("/etc/ssrplus/netflixip.list") then
|
||||
nfip_count = tonumber(luci.sys.exec("cat /etc/ssrplus/netflixip.list | wc -l"))
|
||||
end
|
||||
@ -169,6 +173,13 @@ s.rawhtml = true
|
||||
s.template = "shadowsocksr/refresh"
|
||||
s.value = ip_count .. " " .. translate("Records")
|
||||
|
||||
if uci:get_first("shadowsocksr", 'global', 'apple_optimization', '0') ~= '0' then
|
||||
s = m:field(DummyValue, "apple_data", translate("Apple Domains Data"))
|
||||
s.rawhtml = true
|
||||
s.template = "shadowsocksr/refresh"
|
||||
s.value = apple_count .. " " .. translate("Records")
|
||||
end
|
||||
|
||||
if uci:get_first("shadowsocksr", 'global', 'netflix_enable', '0') ~= '0' then
|
||||
s = m:field(DummyValue, "nfip_data", translate("Netflix IP Data"))
|
||||
s.rawhtml = true
|
||||
|
@ -410,6 +410,9 @@ msgstr "【中国大陆 IP 段】数据库"
|
||||
msgid "Netflix IP Data"
|
||||
msgstr "【Netflix IP 段】数据库"
|
||||
|
||||
msgid "Apple Domains Data"
|
||||
msgstr "【Apple 域名】数据库"
|
||||
|
||||
msgid "Advertising Data"
|
||||
msgstr "【广告屏蔽】数据库"
|
||||
|
||||
@ -470,6 +473,15 @@ msgstr "启用广告屏蔽"
|
||||
msgid "adblock_url"
|
||||
msgstr "广告屏蔽更新 URL"
|
||||
|
||||
msgid "Apple Domains Update url"
|
||||
msgstr "Apple 域名更新 URL"
|
||||
|
||||
msgid "Apple Domains DNS"
|
||||
msgstr "Apple 域名 DNS"
|
||||
|
||||
msgid "If empty, Not change Apple domains parsing DNS (Default is empty)"
|
||||
msgstr "如果为空,则不更改 Apple 域名解析 DNS(默认为空)"
|
||||
|
||||
msgid "gfwlist Update url"
|
||||
msgstr "GFW 列表更新 URL"
|
||||
|
||||
|
@ -258,6 +258,14 @@ start_dns() {
|
||||
fi
|
||||
|
||||
if [ "$(uci_get_by_type global apple_optimization 1)" == "1" ]; then
|
||||
local new_appledns="$(uci_get_by_type global apple_dns)"
|
||||
if [ -n "$new_appledns" ]; then
|
||||
sed -i 's/[[:space:]]//g' /etc/ssrplus/applechina.conf #去除所有空白字符
|
||||
local old_appledns=$(grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' /etc/ssrplus/applechina.conf | sort -u)
|
||||
if [ -n "$old_appledns" ] && [ "$old_appledns" != "$new_appledns" ]; then
|
||||
sed -i "s,$(printf '%s' "$old_appledns"),$(printf '%s' "$new_appledns"),g" /etc/ssrplus/applechina.conf
|
||||
fi
|
||||
fi
|
||||
echolog "Apple 域名中国大陆 CDN 的 优化规则正在加载。"
|
||||
cp -f /etc/ssrplus/applechina.conf $TMP_DNSMASQ_PATH/
|
||||
echolog "Apple 域名中国大陆 CDN 的 优化规则加载完毕。"
|
||||
|
@ -28,6 +28,16 @@ touch /etc/ssrplus/gfw_list.conf
|
||||
touch /etc/ssrplus/oversea_list.conf
|
||||
touch /etc/ssrplus/ad.conf
|
||||
touch /etc/config/shadowsocksr
|
||||
|
||||
if [ -s "/etc/config/shadowsocksr" ]; then
|
||||
if ! uci -q get shadowsocksr.@global_xray_fragment[0] > /dev/null; then
|
||||
uci -q add shadowsocksr global_xray_fragment
|
||||
uci -q set shadowsocksr.@global_xray_fragment[0].fragment='0'
|
||||
uci -q set shadowsocksr.@global_xray_fragment[0].noise='0'
|
||||
uci -q commit shadowsocksr
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -s "/etc/config/shadowsocksr" ] || /etc/init.d/shadowsocksr reset
|
||||
|
||||
sed -i "s/option type 'vmess'/option type 'v2ray'\n\toption v2ray_protocol 'vmess'/g" /etc/config/shadowsocksr
|
||||
|
@ -59,6 +59,7 @@ local excluded_domain = {
|
||||
local mydnsip = '127.0.0.1'
|
||||
local mydnsport = '5335'
|
||||
local ipsetname = 'gfwlist'
|
||||
local new_appledns = uci:get_first("shadowsocksr", "global", "apple_dns")
|
||||
local bc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
|
||||
-- base64decoding
|
||||
local function base64_dec(data)
|
||||
@ -112,6 +113,29 @@ local function generate_gfwlist(type)
|
||||
os.remove("/tmp/ssr-update.tmp")
|
||||
end
|
||||
|
||||
-- 更换 Apple dns
|
||||
local function generate_apple(type)
|
||||
local domains, domains_map = {}, {}
|
||||
local out = io.open("/tmp/ssr-update." .. type, "w")
|
||||
for line in io.lines("/tmp/ssr-update.tmp") do
|
||||
if not (string.find(line, comment_pattern)) then
|
||||
local start, finish, match = string.find(line, domain_pattern)
|
||||
if start and not domains_map[match] then
|
||||
domains_map[match] = true
|
||||
match = string.gsub(match, "%s", "") --从域名中去除所有空白字符
|
||||
table.insert(domains, match)
|
||||
end
|
||||
end
|
||||
end
|
||||
for _, domain in ipairs(domains) do
|
||||
if new_appledns and new_appledns ~= "" then
|
||||
out:write(string.format("server=/%s/%s\n", domain, new_appledns))
|
||||
end
|
||||
end
|
||||
out:close()
|
||||
os.remove("/tmp/ssr-update.tmp")
|
||||
end
|
||||
|
||||
-- adblock转码至dnsmasq格式
|
||||
local function generate_adblock(type)
|
||||
local domains, domains_map = {}, {}
|
||||
@ -159,6 +183,21 @@ local function update(url, file, type, file2)
|
||||
generate_gfwlist(type)
|
||||
Num = 2
|
||||
end
|
||||
if type == "apple_data" then
|
||||
local apple = io.open("/tmp/ssr-update." .. type, "r")
|
||||
local decode = apple:read("*a")
|
||||
if not decode:find("apple") then
|
||||
decode = base64_dec(decode)
|
||||
end
|
||||
apple:close()
|
||||
-- 写回applechina
|
||||
apple = io.open("/tmp/ssr-update.tmp", "w")
|
||||
apple:write(decode)
|
||||
apple:close()
|
||||
if new_appledns and new_appledns ~= "" then
|
||||
generate_apple(type)
|
||||
end
|
||||
end
|
||||
if type == "ad_data" then
|
||||
local adblock = io.open("/tmp/ssr-update." .. type, "r")
|
||||
local decode = adblock:read("*a")
|
||||
@ -217,12 +256,16 @@ if args then
|
||||
update(uci:get_first("shadowsocksr", "global", "chnroute_url"), "/etc/ssrplus/china_ssr.txt", args, TMP_PATH .. "/china_ssr.txt")
|
||||
os.exit(0)
|
||||
end
|
||||
if args == "apple_data" then
|
||||
update(uci:get_first("shadowsocksr", "global", "apple_url"), "/etc/ssrplus/applechina.conf", args, TMP_DNSMASQ_PATH .. "/applechina.conf")
|
||||
os.exit(0)
|
||||
end
|
||||
if args == "ad_data" then
|
||||
update(uci:get_first("shadowsocksr", "global", "adblock_url"), "/etc/ssrplus/ad.conf", args, TMP_DNSMASQ_PATH .. "/ad.conf")
|
||||
os.exit(0)
|
||||
end
|
||||
if args == "nfip_data" then
|
||||
update(uci:get_first("shadowsocksr", "global", "nfip_url"), "/etc/ssrplus/netflixip.list", args)
|
||||
update(uci:get_first("shadowsocksr", "global", "nfip_url"), "/etc/ssrplus/netflixip.list", args, TMP_DNSMASQ_PATH .. "/netflixip.list")
|
||||
os.exit(0)
|
||||
end
|
||||
else
|
||||
@ -230,10 +273,18 @@ else
|
||||
update(uci:get_first("shadowsocksr", "global", "gfwlist_url"), "/etc/ssrplus/gfw_list.conf", "gfw_data", TMP_DNSMASQ_PATH .. "/gfw_list.conf")
|
||||
log("正在更新【国内IP段】数据库")
|
||||
update(uci:get_first("shadowsocksr", "global", "chnroute_url"), "/etc/ssrplus/china_ssr.txt", "ip_data", TMP_PATH .. "/china_ssr.txt")
|
||||
if uci:get_first("shadowsocksr", "global", "apple_optimization", "0") == "1" then
|
||||
log("正在更新【Apple域名】数据库")
|
||||
update(uci:get_first("shadowsocksr", "global", "apple_url"), "/etc/ssrplus/applechina.conf", "apple_data", TMP_DNSMASQ_PATH .. "/applechina.conf")
|
||||
end
|
||||
if uci:get_first("shadowsocksr", "global", "adblock", "0") == "1" then
|
||||
log("正在更新【广告屏蔽】数据库")
|
||||
update(uci:get_first("shadowsocksr", "global", "adblock_url"), "/etc/ssrplus/ad.conf", "ad_data", TMP_DNSMASQ_PATH .. "/ad.conf")
|
||||
end
|
||||
if uci:get_first("shadowsocksr", "global", "netflix_enable", "0") == "1" then
|
||||
log("正在更新【Netflix IP段】数据库")
|
||||
update(uci:get_first("shadowsocksr", "global", "nfip_url"), "/etc/ssrplus/netflixip.list", "nfip_data", TMP_DNSMASQ_PATH .. "/netflixip.list")
|
||||
end
|
||||
-- log("正在更新【Netflix IP段】数据库")
|
||||
-- update(uci:get_first("shadowsocksr", "global", "nfip_url"), "/etc/ssrplus/netflixip.list", "nfip_data")
|
||||
end
|
||||
|
@ -1,12 +1,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=xray-core
|
||||
PKG_VERSION:=24.11.21
|
||||
PKG_VERSION:=24.11.30
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=e45ad1fa11457101776d2c0d7ed8ed7c669b714e7687a85830e44a6e4a52fe05
|
||||
PKG_HASH:=1ed728cf32cf9227c73e1b3651465eb089c6d2f42367cf40df62c4ba0edfc765
|
||||
|
||||
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
|
||||
PKG_LICENSE:=MPL-2.0
|
||||
|
Loading…
Reference in New Issue
Block a user