mirror of
https://github.com/kenzok8/small-package
synced 2025-01-09 04:37:59 +08:00
update 2023-07-02 23:35:28
This commit is contained in:
parent
c89a983671
commit
6b9f821408
@ -5,12 +5,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=dnsproxy
|
||||
PKG_VERSION:=0.50.2
|
||||
PKG_VERSION:=0.51.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/AdguardTeam/dnsproxy/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=f65764a196508bc134e05cdb9d282b790641dfe0e8e8aa99b01544317f791487
|
||||
PKG_HASH:=230f13bcfe48a650c0ffd0574092fd956f5fb6351c622ae869d2bd0058a539b4
|
||||
|
||||
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
|
@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-openclash
|
||||
PKG_VERSION:=0.45.121
|
||||
PKG_VERSION:=0.45.128
|
||||
PKG_RELEASE:=beta
|
||||
PKG_MAINTAINER:=vernesong <https://github.com/vernesong/OpenClash>
|
||||
|
||||
|
@ -110,8 +110,9 @@ o = s:option(Value, "routing_mark", translate("routing-mark"))
|
||||
o.rmempty = true
|
||||
o.placeholder = translate("2333")
|
||||
|
||||
o = s:option(DynamicList, "other_group", translate("Other Group"))
|
||||
o = s:option(DynamicList, "other_group", translate("Other Group (Support Regex)"))
|
||||
o.description = font_red..bold_on..translate("The Added Proxy Groups Must Exist Except 'DIRECT' & 'REJECT'")..bold_off..font_off
|
||||
o:value("all", translate("All Groups"))
|
||||
uci:foreach("openclash", "groups",
|
||||
function(s)
|
||||
if s.name ~= "" and s.name ~= nil and s.name ~= m.uci:get(openclash, sid, "name") then
|
||||
|
@ -310,6 +310,17 @@ end
|
||||
o:value("DIRECT")
|
||||
o:value("REJECT")
|
||||
|
||||
o = s:option(ListValue, "miHoYo", translate("miHoYo"))
|
||||
o:depends("rule_name", "lhie1")
|
||||
o.rmempty = true
|
||||
for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do
|
||||
if groupname ~= nil and groupname ~= "" then
|
||||
o:value(groupname)
|
||||
end
|
||||
end
|
||||
o:value("DIRECT")
|
||||
o:value("REJECT")
|
||||
|
||||
o = s:option(ListValue, "Speedtest", translate("Speedtest"))
|
||||
o:depends("rule_name", "lhie1")
|
||||
o.rmempty = true
|
||||
|
@ -108,7 +108,7 @@ o = s:option(Value, "health_check_interval", translate("Health Check Interval(s)
|
||||
o.default = "300"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(DynamicList, "groups", translate("Proxy Group"))
|
||||
o = s:option(DynamicList, "groups", translate("Proxy Group (Support Regex)"))
|
||||
o.description = font_red..bold_on..translate("No Need Set when Config Create, The added Proxy Groups Must Exist")..bold_off..font_off
|
||||
o.rmempty = true
|
||||
o:value("all", translate("All Groups"))
|
||||
|
@ -174,7 +174,7 @@ o:depends("type", "trojan")
|
||||
o = s:option(Value, "tc_ip", translate("Server IP"))
|
||||
o.rmempty = true
|
||||
o.placeholder = translate("127.0.0.1")
|
||||
o.datatype = "ip4addr"
|
||||
o.datatype = "or(ip4addr, ip6addr)"
|
||||
o:depends("type", "tuic")
|
||||
|
||||
o = s:option(Value, "tc_token", translate("Token"))
|
||||
@ -852,7 +852,46 @@ o = s:option(Value, "routing_mark", translate("routing-mark"))
|
||||
o.rmempty = true
|
||||
o.placeholder = translate("2333")
|
||||
|
||||
o = s:option(DynamicList, "groups", translate("Proxy Group"))
|
||||
-- [[ other-setting ]]--
|
||||
o = s:option(Value, "other_parameters", translate("Other Parameters"))
|
||||
o.template = "cbi/tvalue"
|
||||
o.rows = 20
|
||||
o.wrap = "off"
|
||||
o.description = font_red..bold_on..translate("Edit Your Other Parameters Here")..bold_off..font_off
|
||||
o.rmempty = true
|
||||
function o.cfgvalue(self, section)
|
||||
if self.map:get(section, "other_parameters") == nil then
|
||||
return "# Example:\n"..
|
||||
"# Only support YAML, four spaces need to be reserved at the beginning of each line to maintain formatting alignment\n"..
|
||||
"# 示例:\n"..
|
||||
"# 仅支持 YAML, 每行行首需要多保留四个空格以使脚本处理后能够与上方配置保持格式对齐\n"..
|
||||
"# type: ss\n"..
|
||||
"# server: \"127.0.0.1\"\n"..
|
||||
"# port: 443\n"..
|
||||
"# cipher: rc4-md5\n"..
|
||||
"# password: \"123456\"\n"..
|
||||
"# udp: true\n"..
|
||||
"# udp-over-tcp: false\n"..
|
||||
"# ip-version: \"dual\"\n"..
|
||||
"# tfo: true\n"..
|
||||
"# smux:\n"..
|
||||
"# enabled: false\n"..
|
||||
"# plugin-opts:\n"..
|
||||
"# mode: tls\n"..
|
||||
"# host: world.taobao.com"
|
||||
else
|
||||
return Value.cfgvalue(self, section)
|
||||
end
|
||||
end
|
||||
function o.validate(self, value)
|
||||
if value then
|
||||
value = value:gsub("\r\n?", "\n")
|
||||
value = value:gsub("%c*$", "")
|
||||
end
|
||||
return value
|
||||
end
|
||||
|
||||
o = s:option(DynamicList, "groups", translate("Proxy Group (Support Regex)"))
|
||||
o.description = font_red..bold_on..translate("No Need Set when Config Create, The added Proxy Groups Must Exist")..bold_off..font_off
|
||||
o.rmempty = true
|
||||
o:value("all", translate("All Groups"))
|
||||
|
@ -41,7 +41,7 @@ o = s:option(Flag, "servers_update", translate("Keep Settings"))
|
||||
o.description = font_red .. bold_on .. translate("Only Update Servers Below When Subscription") .. bold_off .. font_off
|
||||
o.default = 0
|
||||
|
||||
o = s:option(DynamicList, "new_servers_group", translate("New Servers Group"))
|
||||
o = s:option(DynamicList, "new_servers_group", translate("New Servers Group (Support Regex)"))
|
||||
o.description = translate("Set The New Subscribe Server's Default Proxy Groups")
|
||||
o.rmempty = true
|
||||
o:depends("servers_update", 1)
|
||||
|
@ -12,6 +12,7 @@
|
||||
.sub_tab_show{
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
color: var(--gray-dark);
|
||||
font-size: 12px;
|
||||
margin: 0 auto;
|
||||
-webkit-transition: all 1.5s;
|
||||
|
@ -22,6 +22,7 @@
|
||||
|
||||
.tool_label_span {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tool_label_select {
|
||||
|
@ -663,8 +663,8 @@ msgstr "保留配置"
|
||||
msgid "Only Update Servers Below When Subscription"
|
||||
msgstr "订阅时仅更新节点和代理集,保留下方策略组设置,不修改顺序"
|
||||
|
||||
msgid "New Servers Group"
|
||||
msgstr "新节点默认策略组"
|
||||
msgid "New Servers Group (Support Regex)"
|
||||
msgstr "新节点默认策略组(请勿重复添加,支持正则匹配)"
|
||||
|
||||
msgid "Set The New Subscribe Server's Default Proxy Groups"
|
||||
msgstr "选择符合订阅要求的新节点的默认策略组(请勿重复添加)"
|
||||
@ -843,8 +843,8 @@ msgstr "Load-Balance【负载均衡】"
|
||||
msgid "Relay-Traffic"
|
||||
msgstr "Relay【嵌套中转】"
|
||||
|
||||
msgid "Other Group"
|
||||
msgstr "包含其他策略组(请勿重复添加)"
|
||||
msgid "Other Group (Support Regex)"
|
||||
msgstr "包含其他策略组(请勿重复添加,支持正则匹配)"
|
||||
|
||||
msgid "The Added Proxy Groups Must Exist Except 'DIRECT' & 'REJECT'"
|
||||
msgstr "注意:除'DIRECT'和'REJECT'外,修改配置文件前添加的其他策略组必须已创建"
|
||||
@ -852,8 +852,8 @@ msgstr "注意:除'DIRECT'和'REJECT'外,修改配置文件前添加的其
|
||||
msgid "The Added Proxy Provider Must Exist"
|
||||
msgstr "修改配置文件前添加的代理集必须已创建"
|
||||
|
||||
msgid "Proxy Group"
|
||||
msgstr "添加到策略组(请勿重复添加)"
|
||||
msgid "Proxy Group (Support Regex)"
|
||||
msgstr "添加到策略组(请勿重复添加,支持正则匹配)"
|
||||
|
||||
msgid "Set Proxy Group"
|
||||
msgstr "指定策略组"
|
||||
@ -1701,8 +1701,8 @@ msgstr "替换成功,检测到已启用节点筛选,开始挑选节点..."
|
||||
msgid "is Replaced Successfully, Start to Reserving..."
|
||||
msgstr "替换成功,检测到已启用保留配置,开始进行设置..."
|
||||
|
||||
msgid "Config File Download Successful, Check If There is Any Update..."
|
||||
msgstr "配置文件下载成功,检查是否有更新..."
|
||||
msgid "Config File Test Successful, Check If There is Any Update..."
|
||||
msgstr "配置文件测试成功,检查是否有更新..."
|
||||
|
||||
msgid "Are Updates, Start Replacing..."
|
||||
msgstr "有更新,开始替换..."
|
||||
@ -3395,3 +3395,27 @@ msgstr "警告:设置仅允许内网功能失败,无法获取 IPv4 的 WAN
|
||||
|
||||
msgid "Warning: Can't Settting Only Intranet Allowed Function, Get IPv6 WAN Interfaces error, Please Verify The Firewall's WAN Zone Name is wan, Ignore This IF The Device Does not Have a WAN Interfaces..."
|
||||
msgstr "警告:设置仅允许内网功能失败,无法获取 IPv6 的 WAN 接口名称,请确保防火墙设置中 IPv6 WAN 区域的名称为 wan,如设备无 WAN 口请忽略此提示..."
|
||||
|
||||
msgid "Config File Download Successful, Test If There is Any Errors..."
|
||||
msgstr "配置文件下载成功,使用内核测试是否有错误..."
|
||||
|
||||
msgid "configuration file"
|
||||
msgstr "配置文件"
|
||||
|
||||
msgid "test failed"
|
||||
msgstr "测试失败..."
|
||||
|
||||
msgid "test is successful"
|
||||
msgstr "测试成功..."
|
||||
|
||||
msgid "Error: Config File Tested Faild, Please Check The Log Infos!"
|
||||
msgstr "错误:配置文件测试失败,请查看《内核日志》排查失败原因!"
|
||||
|
||||
msgid "Test The Config File First..."
|
||||
msgstr "启动前调用内核测试配置文件..."
|
||||
|
||||
msgid "Other Parameters"
|
||||
msgstr "其他附加配置"
|
||||
|
||||
msgid "Edit Your Other Parameters Here"
|
||||
msgstr "请在此编辑您的附加配置"
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,9 @@
|
||||
payload:
|
||||
# > miHoYo
|
||||
- DOMAIN-SUFFIX,bh3.com
|
||||
- DOMAIN-SUFFIX,hoyolab.com
|
||||
- DOMAIN-SUFFIX,hoyoverse.com
|
||||
- DOMAIN-SUFFIX,mihayo.com
|
||||
- DOMAIN-SUFFIX,mihoyo.com
|
||||
- DOMAIN-SUFFIX,miyoushe.com
|
||||
- DOMAIN-SUFFIX,yuanshen.com
|
@ -34,6 +34,9 @@ DNSMASQ_CONF_DIR=$(uci -q get dhcp.@dnsmasq[0].confdir || echo '/tmp/dnsmasq.d')
|
||||
DNSMASQ_CONF_DIR=${DNSMASQ_CONF_DIR%*/}
|
||||
custom_china_domain_dns_server=$(uci -q get openclash.config.custom_china_domain_dns_server || echo "114.114.114.114")
|
||||
FW4=$(command -v fw4)
|
||||
CLASH="/etc/openclash/clash"
|
||||
CLASH_CONFIG="/tmp"
|
||||
|
||||
|
||||
if [ -z "$DNSPORT" ]; then
|
||||
DNSPORT=$(netstat -nlp |grep -E '127.0.0.1:.*dnsmasq' |awk -F '127.0.0.1:' '{print $2}' |awk '{print $1}' |head -1 || echo 53)
|
||||
@ -60,6 +63,28 @@ kill_watchdog() {
|
||||
done >/dev/null 2>&1
|
||||
}
|
||||
|
||||
config_test()
|
||||
{
|
||||
if [ -f "$CLASH" ]; then
|
||||
LOG_OUT "Config File Download Successful, Test If There is Any Errors..."
|
||||
test_info=$(nohup $CLASH -t -d $CLASH_CONFIG -f "$CFG_FILE")
|
||||
local IFS=$'\n'
|
||||
for i in $test_info; do
|
||||
if [ -n "$(echo "$i" |grep "configuration file")" ]; then
|
||||
local info=$(echo "$i" |sed "s# ${CFG_FILE} #【${CONFIG_FILE}】#g")
|
||||
LOG_OUT "$info"
|
||||
else
|
||||
echo "$i" >> "$LOG_FILE"
|
||||
fi
|
||||
done
|
||||
if [ -n "$(echo "$test_info" |grep "test failed")" ]; then
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
config_download()
|
||||
{
|
||||
if [ -n "$subscribe_url_param" ]; then
|
||||
@ -158,7 +183,7 @@ config_cus_up()
|
||||
|
||||
config_su_check()
|
||||
{
|
||||
LOG_OUT "Config File Download Successful, Check If There is Any Update..."
|
||||
LOG_OUT "Config File Test Successful, Check If There is Any Update..."
|
||||
sed -i 's/!<str> /!!str /g' "$CFG_FILE" >/dev/null 2>&1
|
||||
if [ -f "$CONFIG_FILE" ]; then
|
||||
cmp -s "$BACKPACK_FILE" "$CFG_FILE"
|
||||
@ -425,6 +450,13 @@ EOF
|
||||
if [ "${PIPESTATUS[0]}" -eq 0 ] && [ -s "$CFG_FILE" ]; then
|
||||
#prevent ruby unexpected error
|
||||
sed -i -E 's/protocol-param: ([^,'"'"'"''}( *#)\n\r]+)/protocol-param: "\1"/g' "$CFG_FILE" 2>/dev/null
|
||||
config_test
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_OUT "Error: Config File Tested Faild, Please Check The Log Infos!"
|
||||
change_dns
|
||||
config_error
|
||||
return
|
||||
fi
|
||||
ruby -ryaml -rYAML -I "/usr/share/openclash" -E UTF-8 -e "
|
||||
begin
|
||||
YAML.load_file('$CFG_FILE');
|
||||
@ -602,7 +634,13 @@ sub_info_get()
|
||||
if [ "${PIPESTATUS[0]}" -eq 0 ] && [ -s "$CFG_FILE" ]; then
|
||||
#prevent ruby unexpected error
|
||||
sed -i -E 's/protocol-param: ([^,'"'"'"''}( *#)\n\r]+)/protocol-param: "\1"/g' "$CFG_FILE" 2>/dev/null
|
||||
ruby -ryaml -rYAML -I "/usr/share/openclash" -E UTF-8 -e "
|
||||
config_test
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_OUT "Error: Config File Tested Faild, Please Check The Log Infos!"
|
||||
config_download_direct
|
||||
return
|
||||
fi
|
||||
ruby -ryaml -rYAML -I "/usr/share/openclash" -E UTF-8 -e "
|
||||
begin
|
||||
YAML.load_file('$CFG_FILE');
|
||||
rescue Exception => e
|
||||
|
@ -47,7 +47,8 @@ check_dnsmasq() {
|
||||
nft delete rule inet fw4 ${nft} handle ${handle}
|
||||
done
|
||||
done >/dev/null 2>&1
|
||||
position=$(nft list chain inet fw4 dstnat |grep "OpenClash" |grep "DNS" |awk -F '# handle ' '{print$2}' |sort -rn |head -1 || ehco 0)
|
||||
local position=$(nft -a list chain inet fw4 dstnat |grep "OpenClash" |grep "DNS" |awk -F '# handle ' '{print$2}' |sort -rn |head -1)
|
||||
[ -z "$position" ] && position=0
|
||||
nft add rule inet fw4 dstnat position "$position" tcp dport 53 redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" 2>/dev/null
|
||||
nft add rule inet fw4 dstnat position "$position" udp dport 53 redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" 2>/dev/null
|
||||
if [ "$ipv6_enable" -eq 1 ]; then
|
||||
@ -66,12 +67,14 @@ check_dnsmasq() {
|
||||
done
|
||||
fi
|
||||
done >/dev/null 2>&1
|
||||
position=$(iptables -nvL PREROUTING -t nat |sed 1,2d |grep "OpenClash" |sed -n "/DNS/=" 2>/dev/null |sort -rn |head -1 || ehco 0)
|
||||
local position=$(iptables -nvL PREROUTING -t nat |sed 1,2d |grep "OpenClash" |sed -n "/DNS/=" 2>/dev/null |sort -rn |head -1)
|
||||
[ -z "$position" ] && position=0
|
||||
[ "$position" -ne 0 ] && let position++
|
||||
iptables -t nat -I PREROUTING "$position" -p udp --dport 53 -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" 2>/dev/null
|
||||
iptables -t nat -I PREROUTING "$position" -p tcp --dport 53 -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" 2>/dev/null
|
||||
if [ "$ipv6_enable" -eq 1 ]; then
|
||||
position=$(ip6tables -nvL PREROUTING -t nat |sed 1,2d |grep "OpenClash" |sed -n "/DNS/=" 2>/dev/null |sort -rn |head -1 || ehco 0)
|
||||
position=$(ip6tables -nvL PREROUTING -t nat |sed 1,2d |grep "OpenClash" |sed -n "/DNS/=" 2>/dev/null |sort -rn |head -1)
|
||||
[ -z "$position" ] && position=0
|
||||
[ "$position" -ne 0 ] && let position++
|
||||
ip6tables -t nat -I PREROUTING "$position" -p udp --dport 53 -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" 2>/dev/null
|
||||
ip6tables -t nat -I PREROUTING "$position" -p tcp --dport 53 -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" 2>/dev/null
|
||||
|
@ -2,9 +2,9 @@ rules:
|
||||
- RULE-SET,Reject,AdBlock
|
||||
- RULE-SET,Special,DIRECT
|
||||
- RULE-SET,Netflix,Netflix
|
||||
- RULE-SET,Spotify,Spotify
|
||||
- RULE-SET,YouTube,YouTube
|
||||
- RULE-SET,Disney Plus,Disney
|
||||
- RULE-SET,YouTube,YouTube
|
||||
- RULE-SET,Spotify,Spotify
|
||||
- RULE-SET,Bilibili,Asian TV
|
||||
- RULE-SET,IQ,Asian TV
|
||||
- RULE-SET,IQIYI,Asian TV
|
||||
@ -40,20 +40,21 @@ rules:
|
||||
- RULE-SET,Pornhub,Global TV
|
||||
- RULE-SET,Soundcloud,Global TV
|
||||
- RULE-SET,ViuTV,Global TV
|
||||
- RULE-SET,Telegram,Telegram
|
||||
- RULE-SET,Crypto,Crypto
|
||||
- RULE-SET,Discord,Discord
|
||||
- RULE-SET,Steam,Steam
|
||||
- RULE-SET,Speedtest,Speedtest
|
||||
- RULE-SET,PayPal,PayPal
|
||||
- RULE-SET,Microsoft,Microsoft
|
||||
- RULE-SET,ChatGPT,ChatGPT
|
||||
- RULE-SET,Apple Music,Apple TV
|
||||
- RULE-SET,Apple News,Apple TV
|
||||
- RULE-SET,Apple TV,Apple TV
|
||||
- RULE-SET,Apple,Apple
|
||||
- RULE-SET,Telegram,Telegram
|
||||
- RULE-SET,ChatGPT,ChatGPT
|
||||
- RULE-SET,Crypto,Crypto
|
||||
- RULE-SET,Discord,Discord
|
||||
- RULE-SET,Google FCM,Google FCM
|
||||
- RULE-SET,Microsoft,Microsoft
|
||||
- RULE-SET,PayPal,PayPal
|
||||
- RULE-SET,Scholar,Scholar
|
||||
- RULE-SET,Speedtest,Speedtest
|
||||
- RULE-SET,Steam,Steam
|
||||
- RULE-SET,miHoYo,miHoYo
|
||||
- RULE-SET,PROXY,Proxy
|
||||
- RULE-SET,Domestic,Domestic
|
||||
- RULE-SET,Domestic IPs,Domestic
|
||||
@ -66,9 +67,9 @@ script:
|
||||
ruleset_action = {"Reject": "AdBlock",
|
||||
"Special": "DIRECT",
|
||||
"Netflix": "Netflix",
|
||||
"Spotify": "Spotify",
|
||||
"YouTube": "YouTube",
|
||||
"Disney Plus": "Disney",
|
||||
"YouTube": "YouTube",
|
||||
"Spotify": "Spotify",
|
||||
"Bilibili": "Asian TV",
|
||||
"IQ": "Asian TV",
|
||||
"IQIYI": "Asian TV",
|
||||
@ -104,20 +105,21 @@ script:
|
||||
"Pornhub": "Global TV",
|
||||
"Soundcloud": "Global TV",
|
||||
"ViuTV": "Global TV",
|
||||
"Telegram": "Telegram",
|
||||
"Crypto": "Crypto",
|
||||
"Discord": "Discord",
|
||||
"Steam": "Steam",
|
||||
"Speedtest": "Speedtest",
|
||||
"PayPal": "PayPal",
|
||||
"Microsoft": "Microsoft",
|
||||
"ChatGPT": "ChatGPT",
|
||||
"Apple Music": "Apple TV",
|
||||
"Apple News": "Apple TV",
|
||||
"Apple TV": "Apple TV",
|
||||
"Apple": "Apple",
|
||||
"Telegram": "Telegram",
|
||||
"ChatGPT": "ChatGPT",
|
||||
"Crypto": "Crypto",
|
||||
"Discord": "Discord",
|
||||
"Google FCM": "Google FCM",
|
||||
"Microsoft": "Microsoft",
|
||||
"PayPal": "PayPal",
|
||||
"Scholar": "Scholar",
|
||||
"Speedtest": "Speedtest",
|
||||
"Steam": "Steam",
|
||||
"miHoYo": "miHoYo",
|
||||
"PROXY": "Proxy",
|
||||
"Domestic": "Domestic",
|
||||
"Domestic IPs": "Domestic",
|
||||
@ -154,354 +156,360 @@ rule-providers:
|
||||
Reject:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Reject.yaml
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Reject.yaml
|
||||
path: "./Rules/Reject"
|
||||
interval: 86400
|
||||
Special:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Special.yaml
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Special.yaml
|
||||
path: "./Rules/Special"
|
||||
interval: 86400
|
||||
Netflix:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Netflix.yaml
|
||||
path: "./Rules/Media/Netflix"
|
||||
interval: 86400
|
||||
Spotify:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Spotify.yaml
|
||||
path: "./Rules/Media/Spotify"
|
||||
interval: 86400
|
||||
YouTube:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/YouTube.yaml
|
||||
path: "./Rules/Media/YouTube"
|
||||
interval: 86400
|
||||
Bilibili:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Bilibili.yaml
|
||||
path: "./Rules/Media/Bilibili"
|
||||
interval: 86400
|
||||
IQ:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/IQ.yaml
|
||||
path: "./Rules/Media/IQI"
|
||||
interval: 86400
|
||||
IQIYI:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/IQIYI.yaml
|
||||
path: "./Rules/Media/IQYI"
|
||||
interval: 86400
|
||||
Letv:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Letv.yaml
|
||||
path: "./Rules/Media/Letv"
|
||||
interval: 86400
|
||||
Netease Music:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Netease%20Music.yaml
|
||||
path: "./Rules/Media/Netease_Music"
|
||||
interval: 86400
|
||||
Tencent Video:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Tencent%20Video.yaml
|
||||
path: "./Rules/Media/Tencent_Video"
|
||||
interval: 86400
|
||||
Youku:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Youku.yaml
|
||||
path: "./Rules/Media/Youku"
|
||||
interval: 86400
|
||||
WeTV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/WeTV.yaml
|
||||
path: "./Rules/Media/WeTV"
|
||||
interval: 86400
|
||||
ABC:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/ABC.yaml
|
||||
path: "./Rules/Media/ABC"
|
||||
interval: 86400
|
||||
Abema TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Abema%20TV.yaml
|
||||
path: "./Rules/Media/Abema_TV"
|
||||
interval: 86400
|
||||
Amazon:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Amazon.yaml
|
||||
path: "./Rules/Media/Amazon"
|
||||
interval: 86400
|
||||
Apple Music:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Apple%20Music.yaml
|
||||
path: "./Rules/Media/Apple_Music"
|
||||
interval: 86400
|
||||
Apple News:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Apple%20News.yaml
|
||||
path: "./Rules/Media/Apple_News"
|
||||
interval: 86400
|
||||
Apple TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Apple%20TV.yaml
|
||||
path: "./Rules/Media/Apple_TV"
|
||||
interval: 86400
|
||||
Bahamut:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Bahamut.yaml
|
||||
path: "./Rules/Media/Bahamut"
|
||||
interval: 86400
|
||||
BBC iPlayer:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/BBC%20iPlayer.yaml
|
||||
path: "./Rules/Media/BBC_iPlayer"
|
||||
interval: 86400
|
||||
DAZN:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/DAZN.yaml
|
||||
path: "./Rules/Media/DAZN"
|
||||
interval: 86400
|
||||
Discovery Plus:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Discovery%20Plus.yaml
|
||||
path: "./Rules/Media/Discovery_Plus"
|
||||
interval: 86400
|
||||
Disney Plus:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Disney%20Plus.yaml
|
||||
path: "./Rules/Media/Disney_Plus"
|
||||
interval: 86400
|
||||
encoreTVB:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/encoreTVB.yaml
|
||||
path: "./Rules/Media/encoreTVB"
|
||||
interval: 86400
|
||||
F1 TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/F1%20TV.yaml
|
||||
path: "./Rules/Media/F1_TV"
|
||||
interval: 86400
|
||||
Fox Now:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Fox%20Now.yaml
|
||||
path: "./Rules/Media/Fox_Now"
|
||||
interval: 86400
|
||||
Fox+:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Fox%2B.yaml
|
||||
path: "./Rules/Media/Fox+"
|
||||
interval: 86400
|
||||
HBO Go:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/HBO%20Go.yaml
|
||||
path: "./Rules/Media/HBO_Go"
|
||||
interval: 86400
|
||||
HBO Max:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/HBO%20Max.yaml
|
||||
path: "./Rules/Media/HBO_Max"
|
||||
interval: 86400
|
||||
Hulu Japan:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Hulu%20Japan.yaml
|
||||
path: "./Rules/Media/Hulu_Japan"
|
||||
interval: 86400
|
||||
Hulu:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Hulu.yaml
|
||||
path: "./Rules/Media/Hulu"
|
||||
interval: 86400
|
||||
Japonx:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Japonx.yaml
|
||||
path: "./Rules/Media/Japonx"
|
||||
interval: 86400
|
||||
JOOX:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/JOOX.yaml
|
||||
path: "./Rules/Media/JOOX"
|
||||
interval: 86400
|
||||
KKBOX:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/KKBOX.yaml
|
||||
path: "./Rules/Media/KKBOX"
|
||||
interval: 86400
|
||||
KKTV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/KKTV.yaml
|
||||
path: "./Rules/Media/KKTV"
|
||||
interval: 86400
|
||||
Line TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Line%20TV.yaml
|
||||
path: "./Rules/Media/Line_TV"
|
||||
interval: 86400
|
||||
myTV SUPER:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/myTV%20SUPER.yaml
|
||||
path: "./Rules/Media/myTV_SUPER"
|
||||
interval: 86400
|
||||
Niconico:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Niconico.yaml
|
||||
path: "./Rules/Media/Niconico"
|
||||
interval: 86400
|
||||
Pandora:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Pandora.yaml
|
||||
path: "./Rules/Media/Pandora"
|
||||
interval: 86400
|
||||
PBS:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/PBS.yaml
|
||||
path: "./Rules/Media/PBS"
|
||||
interval: 86400
|
||||
Pornhub:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Pornhub.yaml
|
||||
path: "./Rules/Media/Pornhub"
|
||||
interval: 86400
|
||||
Soundcloud:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/Soundcloud.yaml
|
||||
path: "./Rules/Media/Soundcloud"
|
||||
interval: 86400
|
||||
ViuTV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Media/ViuTV.yaml
|
||||
path: "./Rules/Media/ViuTV"
|
||||
interval: 86400
|
||||
Telegram:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Telegram.yaml
|
||||
path: "./Rules/Telegram"
|
||||
interval: 86400
|
||||
Crypto:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Crypto.yaml
|
||||
path: "./Rules/Crypto"
|
||||
interval: 86400
|
||||
Discord:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Discord.yaml
|
||||
path: "./Rules/Discord"
|
||||
interval: 86400
|
||||
Steam:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Steam.yaml
|
||||
path: "./Rules/Steam"
|
||||
interval: 86400
|
||||
Speedtest:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Speedtest.yaml
|
||||
path: "./Rules/Speedtest"
|
||||
interval: 86400
|
||||
PayPal:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/PayPal.yaml
|
||||
path: "./Rules/PayPal"
|
||||
interval: 86400
|
||||
Microsoft:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Microsoft.yaml
|
||||
path: "./Rules/Microsoft"
|
||||
interval: 86400
|
||||
ChatGPT:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/ChatGPT.yaml
|
||||
path: "./Rules/ChatGPT"
|
||||
interval: 86400
|
||||
PROXY:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Proxy.yaml
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Proxy.yaml
|
||||
path: "./Rules/Proxy"
|
||||
interval: 86400
|
||||
Domestic:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Domestic.yaml
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Domestic.yaml
|
||||
path: "./Rules/Domestic"
|
||||
interval: 86400
|
||||
Apple:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Apple.yaml
|
||||
path: "./Rules/Apple"
|
||||
interval: 86400
|
||||
Google FCM:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Google%20FCM.yaml
|
||||
path: "./Rules/Google FCM"
|
||||
interval: 86400
|
||||
Scholar:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Scholar.yaml
|
||||
path: "./Rules/Scholar"
|
||||
interval: 86400
|
||||
Domestic IPs:
|
||||
type: http
|
||||
behavior: ipcidr
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/Domestic%20IPs.yaml
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Domestic%20IPs.yaml
|
||||
path: "./Rules/Domestic_IPs"
|
||||
interval: 86400
|
||||
LAN:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/LAN.yaml
|
||||
url: https://dler.cloud/Rules/Clash/Provider/LAN.yaml
|
||||
path: "./Rules/LAN"
|
||||
interval: 86400
|
||||
Netflix:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Netflix.yaml
|
||||
path: "./Rules/Media/Netflix"
|
||||
interval: 86400
|
||||
Spotify:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Spotify.yaml
|
||||
path: "./Rules/Media/Spotify"
|
||||
interval: 86400
|
||||
YouTube:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/YouTube.yaml
|
||||
path: "./Rules/Media/YouTube"
|
||||
interval: 86400
|
||||
Bilibili:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Bilibili.yaml
|
||||
path: "./Rules/Media/Bilibili"
|
||||
interval: 86400
|
||||
IQ:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/IQ.yaml
|
||||
path: "./Rules/Media/IQI"
|
||||
interval: 86400
|
||||
IQIYI:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/IQIYI.yaml
|
||||
path: "./Rules/Media/IQYI"
|
||||
interval: 86400
|
||||
Letv:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Letv.yaml
|
||||
path: "./Rules/Media/Letv"
|
||||
interval: 86400
|
||||
Netease Music:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Netease%20Music.yaml
|
||||
path: "./Rules/Media/Netease_Music"
|
||||
interval: 86400
|
||||
Tencent Video:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Tencent%20Video.yaml
|
||||
path: "./Rules/Media/Tencent_Video"
|
||||
interval: 86400
|
||||
Youku:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Youku.yaml
|
||||
path: "./Rules/Media/Youku"
|
||||
interval: 86400
|
||||
WeTV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/WeTV.yaml
|
||||
path: "./Rules/Media/WeTV"
|
||||
interval: 86400
|
||||
ABC:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/ABC.yaml
|
||||
path: "./Rules/Media/ABC"
|
||||
interval: 86400
|
||||
Abema TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Abema%20TV.yaml
|
||||
path: "./Rules/Media/Abema_TV"
|
||||
interval: 86400
|
||||
Amazon:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Amazon.yaml
|
||||
path: "./Rules/Media/Amazon"
|
||||
interval: 86400
|
||||
Apple Music:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Apple%20Music.yaml
|
||||
path: "./Rules/Media/Apple_Music"
|
||||
interval: 86400
|
||||
Apple News:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Apple%20News.yaml
|
||||
path: "./Rules/Media/Apple_News"
|
||||
interval: 86400
|
||||
Apple TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Apple%20TV.yaml
|
||||
path: "./Rules/Media/Apple_TV"
|
||||
interval: 86400
|
||||
Bahamut:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Bahamut.yaml
|
||||
path: "./Rules/Media/Bahamut"
|
||||
interval: 86400
|
||||
BBC iPlayer:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/BBC%20iPlayer.yaml
|
||||
path: "./Rules/Media/BBC_iPlayer"
|
||||
interval: 86400
|
||||
DAZN:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/DAZN.yaml
|
||||
path: "./Rules/Media/DAZN"
|
||||
interval: 86400
|
||||
Discovery Plus:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Discovery%20Plus.yaml
|
||||
path: "./Rules/Media/Discovery_Plus"
|
||||
interval: 86400
|
||||
Disney Plus:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Disney%20Plus.yaml
|
||||
path: "./Rules/Media/Disney_Plus"
|
||||
interval: 86400
|
||||
encoreTVB:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/encoreTVB.yaml
|
||||
path: "./Rules/Media/encoreTVB"
|
||||
interval: 86400
|
||||
F1 TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/F1%20TV.yaml
|
||||
path: "./Rules/Media/F1_TV"
|
||||
interval: 86400
|
||||
Fox Now:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Fox%20Now.yaml
|
||||
path: "./Rules/Media/Fox_Now"
|
||||
interval: 86400
|
||||
Fox+:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Fox%2B.yaml
|
||||
path: "./Rules/Media/Fox+"
|
||||
interval: 86400
|
||||
HBO Go:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/HBO%20Go.yaml
|
||||
path: "./Rules/Media/HBO_Go"
|
||||
interval: 86400
|
||||
HBO Max:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/HBO%20Max.yaml
|
||||
path: "./Rules/Media/HBO_Max"
|
||||
interval: 86400
|
||||
Hulu Japan:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Hulu%20Japan.yaml
|
||||
path: "./Rules/Media/Hulu_Japan"
|
||||
interval: 86400
|
||||
Hulu:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Hulu.yaml
|
||||
path: "./Rules/Media/Hulu"
|
||||
interval: 86400
|
||||
Japonx:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Japonx.yaml
|
||||
path: "./Rules/Media/Japonx"
|
||||
interval: 86400
|
||||
JOOX:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/JOOX.yaml
|
||||
path: "./Rules/Media/JOOX"
|
||||
interval: 86400
|
||||
KKBOX:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/KKBOX.yaml
|
||||
path: "./Rules/Media/KKBOX"
|
||||
interval: 86400
|
||||
KKTV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/KKTV.yaml
|
||||
path: "./Rules/Media/KKTV"
|
||||
interval: 86400
|
||||
Line TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Line%20TV.yaml
|
||||
path: "./Rules/Media/Line_TV"
|
||||
interval: 86400
|
||||
myTV SUPER:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/myTV%20SUPER.yaml
|
||||
path: "./Rules/Media/myTV_SUPER"
|
||||
interval: 86400
|
||||
Niconico:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Niconico.yaml
|
||||
path: "./Rules/Media/Niconico"
|
||||
interval: 86400
|
||||
Pandora:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Pandora.yaml
|
||||
path: "./Rules/Media/Pandora"
|
||||
interval: 86400
|
||||
PBS:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/PBS.yaml
|
||||
path: "./Rules/Media/PBS"
|
||||
interval: 86400
|
||||
Pornhub:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Pornhub.yaml
|
||||
path: "./Rules/Media/Pornhub"
|
||||
interval: 86400
|
||||
Soundcloud:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/Soundcloud.yaml
|
||||
path: "./Rules/Media/Soundcloud"
|
||||
interval: 86400
|
||||
ViuTV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Media/ViuTV.yaml
|
||||
path: "./Rules/Media/ViuTV"
|
||||
interval: 86400
|
||||
Telegram:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Telegram.yaml
|
||||
path: "./Rules/Telegram"
|
||||
interval: 86400
|
||||
Crypto:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Crypto.yaml
|
||||
path: "./Rules/Crypto"
|
||||
interval: 86400
|
||||
Discord:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Discord.yaml
|
||||
path: "./Rules/Discord"
|
||||
interval: 86400
|
||||
Steam:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Steam.yaml
|
||||
path: "./Rules/Steam"
|
||||
interval: 86400
|
||||
Speedtest:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Speedtest.yaml
|
||||
path: "./Rules/Speedtest"
|
||||
interval: 86400
|
||||
PayPal:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/PayPal.yaml
|
||||
path: "./Rules/PayPal"
|
||||
interval: 86400
|
||||
Microsoft:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Microsoft.yaml
|
||||
path: "./Rules/Microsoft"
|
||||
interval: 86400
|
||||
ChatGPT:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/ChatGPT.yaml
|
||||
path: "./Rules/ChatGPT"
|
||||
interval: 86400
|
||||
Apple:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Apple.yaml
|
||||
path: "./Rules/Apple"
|
||||
interval: 86400
|
||||
Google FCM:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Google%20FCM.yaml
|
||||
path: "./Rules/Google FCM"
|
||||
interval: 86400
|
||||
Scholar:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/Scholar.yaml
|
||||
path: "./Rules/Scholar"
|
||||
interval: 86400
|
||||
miHoYo:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://dler.cloud/Rules/Clash/Provider/miHoYo.yaml
|
||||
path: "./Rules/miHoYo"
|
||||
interval: 86400
|
||||
|
@ -74,7 +74,7 @@ local Value Value_1 RUBY_YAML_PARSE
|
||||
if [ -z "$1" ] || [ -z "$2" ]; then
|
||||
return
|
||||
fi
|
||||
RUBY_YAML_PARSE="Thread.new{Value = YAML.load_file('$1'); Value_1 = YAML.load_file('$4').reverse!; Value_1$5.each{|x| Value$2.insert($3,x)}; Value$2=Value$2.uniq; File.open('$1','w') {|f| YAML.dump(Value, f)}}.join"
|
||||
RUBY_YAML_PARSE="Thread.new{Value = YAML.load_file('$1'); Value_1 = YAML.load_file('$4'); Value_1$5.reverse.each{|x| Value$2.insert($3,x)}; Value$2=Value$2.uniq; File.open('$1','w') {|f| YAML.dump(Value, f)}}.join"
|
||||
ruby -ryaml -rYAML -I "/usr/share/openclash" -E UTF-8 -e "$RUBY_YAML_PARSE" 2>/dev/null
|
||||
}
|
||||
|
||||
|
@ -384,7 +384,7 @@ Thread.new{
|
||||
Value['global-client-fingerprint']='${31}';
|
||||
end;
|
||||
end;
|
||||
if not Value.key?('dns') then
|
||||
if not Value.key?('dns') or Value['dns'].nil? then
|
||||
Value_1={'dns'=>{'enable'=>true}};
|
||||
Value['dns']=Value_1['dns'];
|
||||
else
|
||||
@ -490,7 +490,7 @@ Thread.new{
|
||||
if Value.key?('iptables') then
|
||||
Value.delete('iptables');
|
||||
end;
|
||||
if not Value.key?('profile') then
|
||||
if not Value.key?('profile') or Value['profile'].nil? then
|
||||
Value_3={'profile'=>{'store-selected'=>true}};
|
||||
Value['profile']=Value_3['profile'];
|
||||
else
|
||||
|
@ -44,7 +44,7 @@ cfg_groups_set()
|
||||
sed -i "s/new_servers_group \'${old_name_cfg}\'/new_servers_group \'${name}\'/g" $CFG_FILE 2>/dev/null
|
||||
sed -i "s/relay_groups \'${old_name_cfg}\'/relay_groups \'${name}\'/g" $CFG_FILE 2>/dev/null
|
||||
#第三方规则处理
|
||||
OTHER_RULE_NAMES=("GlobalTV" "AsianTV" "Proxy" "Youtube" "Bilibili" "Bahamut" "HBOGo" "HBOMax" "Pornhub" "Apple" "GoogleFCM" "Scholar" "Microsoft" "Netflix" "Disney" "Spotify" "Steam" "Speedtest" "Telegram" "PayPal" "Netease_Music" "AdBlock" "Domestic" "Others")
|
||||
OTHER_RULE_NAMES=("GlobalTV" "AsianTV" "Proxy" "Youtube" "Bilibili" "Bahamut" "HBOGo" "HBOMax" "Pornhub" "Apple" "GoogleFCM" "Scholar" "Microsoft" "Netflix" "Disney" "Spotify" "Steam" "Speedtest" "Telegram" "PayPal" "Netease_Music" "AdBlock" "Domestic" "Others" "miHoYo" "ChatGPT" "AppleTV" "Crypto" "Discord")
|
||||
for i in ${OTHER_RULE_NAMES[@]}; do
|
||||
sed -i "s/option ${i} \'${old_name_cfg}\'/option ${i} \'${name}\'/g" $CFG_FILE 2>/dev/null
|
||||
done 2>/dev/null
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
. /lib/functions.sh
|
||||
. /usr/share/openclash/log.sh
|
||||
|
||||
@ -46,7 +46,7 @@ set_groups()
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$1" = "$3" ] || [ "$1" = "all" ]; then
|
||||
if [ "$1" = "all" ] || [[ "$3" =~ ${1} ]]; then
|
||||
set_group=1
|
||||
add_for_this=1
|
||||
echo " - \"${2}\"" >>$GROUP_FILE
|
||||
@ -70,7 +70,7 @@ set_relay_groups()
|
||||
fi
|
||||
|
||||
if [ -n "$server_relay_num" ]; then
|
||||
if [ "$server_group_name" = "$3" ] || [ "$server_group_name" = "all" ]; then
|
||||
if [[ "$3" =~ ${server_group_name} ]] || [ "$server_group_name" = "all" ]; then
|
||||
set_group=1
|
||||
add_for_this=1
|
||||
echo "$server_relay_num # - \"${2}\"" >>/tmp/relay_server
|
||||
@ -109,14 +109,50 @@ yml_servers_add()
|
||||
|
||||
}
|
||||
|
||||
add_other_group()
|
||||
{
|
||||
local section="$1"
|
||||
local name enabled config
|
||||
config_get_bool "enabled" "$section" "enabled" "1"
|
||||
config_get "config" "$section" "config" ""
|
||||
config_get "name" "$section" "name" ""
|
||||
|
||||
if [ "$enabled" = "0" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -n "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -z "$name" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$3" = "$name" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$2" = "all" ] || [[ "$name" =~ ${2} ]]; then
|
||||
set_group=1
|
||||
echo " - ${name}" >>$GROUP_FILE
|
||||
fi
|
||||
}
|
||||
|
||||
#加入其它策略组
|
||||
set_other_groups()
|
||||
{
|
||||
if [ -z "$1" ]; then
|
||||
return
|
||||
fi
|
||||
set_group=1
|
||||
echo " - ${1}" >>$GROUP_FILE
|
||||
|
||||
if [ "$1" = "DIRECT" ] || [ "$1" = "REJECT" ]; then
|
||||
set_group=1
|
||||
echo " - ${1}" >>$GROUP_FILE
|
||||
return
|
||||
fi
|
||||
|
||||
config_foreach add_other_group "groups" "$1" "$2" #比对策略组
|
||||
}
|
||||
|
||||
#加入代理集
|
||||
@ -155,7 +191,7 @@ set_provider_groups()
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$1" = "$3" ] || [ "$1" = "all" ]; then
|
||||
if [[ "$3" =~ ${1} ]] || [ "$1" = "all" ]; then
|
||||
set_proxy_provider=1
|
||||
add_for_this=1
|
||||
echo " - ${2}" >>$GROUP_FILE
|
||||
@ -240,7 +276,7 @@ yml_groups_set()
|
||||
set_group=0
|
||||
set_proxy_provider=0
|
||||
|
||||
config_list_foreach "$section" "other_group" set_other_groups #加入其他策略组
|
||||
config_list_foreach "$section" "other_group" set_other_groups "$name" #加入其他策略组
|
||||
config_foreach yml_servers_add "servers" "$name" "$type" #加入服务器节点
|
||||
|
||||
if [ "$type" = "relay" ] && [ -s "/tmp/relay_server" ]; then
|
||||
|
@ -295,6 +295,7 @@ yml_servers_set()
|
||||
config_get "multiplex_padding" "$section" "multiplex_padding" ""
|
||||
config_get "multiplex_statistic" "$section" "multiplex_statistic" ""
|
||||
config_get "multiplex_only_tcp" "$section" "multiplex_only_tcp" ""
|
||||
config_get "other_parameters" "$section" "other_parameters" ""
|
||||
|
||||
if [ "$enabled" = "0" ]; then
|
||||
return
|
||||
@ -1265,6 +1266,11 @@ cat >> "$SERVER_FILE" <<-EOF
|
||||
routing-mark: "$routing_mark"
|
||||
EOF
|
||||
fi
|
||||
|
||||
#other_parameters
|
||||
if [ -n "$other_parameters" ]; then
|
||||
echo -e "$other_parameters" >> "$SERVER_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
new_servers_group_set()
|
||||
@ -1731,6 +1737,20 @@ cat >> "$SERVER_FILE" <<-EOF
|
||||
EOF
|
||||
fi
|
||||
cat /tmp/Proxy_Provider >> $SERVER_FILE 2>/dev/null
|
||||
cat >> "$SERVER_FILE" <<-EOF
|
||||
- name: miHoYo
|
||||
type: select
|
||||
proxies:
|
||||
- DIRECT
|
||||
- Proxy
|
||||
EOF
|
||||
cat /tmp/Proxy_Server >> $SERVER_FILE 2>/dev/null
|
||||
if [ -f "/tmp/Proxy_Provider" ]; then
|
||||
cat >> "$SERVER_FILE" <<-EOF
|
||||
use:
|
||||
EOF
|
||||
fi
|
||||
cat /tmp/Proxy_Provider >> $SERVER_FILE 2>/dev/null
|
||||
cat >> "$SERVER_FILE" <<-EOF
|
||||
- name: AdBlock
|
||||
type: select
|
||||
@ -1864,6 +1884,7 @@ ${uci_set}DAZN="DAZN"
|
||||
${uci_set}Disney="Disney"
|
||||
${uci_set}Spotify="Spotify"
|
||||
${uci_set}Steam="Steam"
|
||||
${uci_set}miHoYo="miHoYo"
|
||||
${uci_set}AdBlock="AdBlock"
|
||||
${uci_set}Speedtest="Speedtest"
|
||||
${uci_set}Telegram="Telegram"
|
||||
@ -1896,6 +1917,7 @@ ${uci_set}Others="Others"
|
||||
${UCI_DEL_LIST}="Disney" >/dev/null 2>&1 && ${UCI_ADD_LIST}="Disney" >/dev/null 2>&1
|
||||
${UCI_DEL_LIST}="Spotify" >/dev/null 2>&1 && ${UCI_ADD_LIST}="Spotify" >/dev/null 2>&1
|
||||
${UCI_DEL_LIST}="Steam" >/dev/null 2>&1 && ${UCI_ADD_LIST}="Steam" >/dev/null 2>&1
|
||||
${UCI_DEL_LIST}="miHoYo" >/dev/null 2>&1 && ${UCI_ADD_LIST}="miHoYo" >/dev/null 2>&1
|
||||
${UCI_DEL_LIST}="Telegram" >/dev/null 2>&1 && ${UCI_ADD_LIST}="Telegram" >/dev/null 2>&1
|
||||
${UCI_DEL_LIST}="Crypto" >/dev/null 2>&1 && ${UCI_ADD_LIST}="Crypto" >/dev/null 2>&1
|
||||
${UCI_DEL_LIST}="Discord" >/dev/null 2>&1 && ${UCI_ADD_LIST}="Discord" >/dev/null 2>&1
|
||||
|
@ -370,7 +370,7 @@ yml_other_set()
|
||||
|
||||
begin
|
||||
Thread.new{
|
||||
if $6 == 0 and ${10} != 2 then
|
||||
if $6 == 0 and ${11} != 2 and '${13}' == 'fake-ip' then
|
||||
if Value.has_key?('rules') and not Value['rules'].to_a.empty? then
|
||||
if Value['rules'].to_a.grep(/(?=.*SRC-IP-CIDR,'${fake_ip}')/).empty? then
|
||||
Value['rules']=Value['rules'].to_a.insert(0,'SRC-IP-CIDR,${12},DIRECT');
|
||||
@ -939,6 +939,7 @@ yml_other_rules_get()
|
||||
config_get "DAZN" "$section" "DAZN" "$GlobalTV"
|
||||
config_get "ChatGPT" "$section" "ChatGPT" "$Proxy"
|
||||
config_get "AppleTV" "$section" "AppleTV" "$GlobalTV"
|
||||
config_get "miHoYo" "$section" "miHoYo" "$Domestic"
|
||||
}
|
||||
|
||||
if [ "$1" != "0" ]; then
|
||||
@ -950,14 +951,14 @@ if [ "$1" != "0" ]; then
|
||||
config_load "openclash"
|
||||
config_foreach yml_other_rules_get "other_rules" "$5"
|
||||
if [ -z "$rule_name" ]; then
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}"
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}" "${13}"
|
||||
exit 0
|
||||
#判断策略组是否存在
|
||||
elif [ "$rule_name" = "ConnersHua_return" ]; then
|
||||
if [ -z "$(grep -F "$Proxy" /tmp/Proxy_Group)" ]\
|
||||
|| [ -z "$(grep -F "$Others" /tmp/Proxy_Group)" ];then
|
||||
LOG_OUT "Warning: Because of The Different Porxy-Group's Name, Stop Setting The Other Rules!"
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}"
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}" "${13}"
|
||||
exit 0
|
||||
fi
|
||||
elif [ "$rule_name" = "ConnersHua" ]; then
|
||||
@ -967,7 +968,7 @@ if [ "$1" != "0" ]; then
|
||||
|| [ -z "$(grep -F "$Others" /tmp/Proxy_Group)" ]\
|
||||
|| [ -z "$(grep -F "$Domestic" /tmp/Proxy_Group)" ]; then
|
||||
LOG_OUT "Warning: Because of The Different Porxy-Group's Name, Stop Setting The Other Rules!"
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}"
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}" "${13}"
|
||||
exit 0
|
||||
fi
|
||||
elif [ "$rule_name" = "lhie1" ]; then
|
||||
@ -990,6 +991,7 @@ if [ "$1" != "0" ]; then
|
||||
|| [ -z "$(grep -F "$ChatGPT" /tmp/Proxy_Group)" ]\
|
||||
|| [ -z "$(grep -F "$Spotify" /tmp/Proxy_Group)" ]\
|
||||
|| [ -z "$(grep -F "$Steam" /tmp/Proxy_Group)" ]\
|
||||
|| [ -z "$(grep -F "$miHoYo" /tmp/Proxy_Group)" ]\
|
||||
|| [ -z "$(grep -F "$AdBlock" /tmp/Proxy_Group)" ]\
|
||||
|| [ -z "$(grep -F "$Speedtest" /tmp/Proxy_Group)" ]\
|
||||
|| [ -z "$(grep -F "$Telegram" /tmp/Proxy_Group)" ]\
|
||||
@ -1001,13 +1003,13 @@ if [ "$1" != "0" ]; then
|
||||
|| [ -z "$(grep -F "$GoogleFCM" /tmp/Proxy_Group)" ]\
|
||||
|| [ -z "$(grep -F "$Domestic" /tmp/Proxy_Group)" ]; then
|
||||
LOG_OUT "Warning: Because of The Different Porxy-Group's Name, Stop Setting The Other Rules!"
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}"
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}" "${13}"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
if [ -z "$Proxy" ]; then
|
||||
LOG_OUT "Error: Missing Porxy-Group's Name, Stop Setting The Other Rules!"
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}"
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}" "${13}"
|
||||
exit 0
|
||||
else
|
||||
if [ "$rule_name" = "lhie1" ]; then
|
||||
@ -1050,6 +1052,7 @@ if [ "$1" != "0" ]; then
|
||||
.gsub(/,Spotify$/, ',$Spotify#delete_')
|
||||
.gsub(/,ChatGPT$/, ',$ChatGPT#delete_')
|
||||
.gsub(/,Steam$/, ',$Steam#delete_')
|
||||
.gsub(/,miHoYo$/, ',$miHoYo#delete_')
|
||||
.gsub(/,AdBlock$/, ',$AdBlock#delete_')
|
||||
.gsub(/,Speedtest$/, ',$Speedtest#delete_')
|
||||
.gsub(/,Telegram$/, ',$Telegram#delete_')
|
||||
@ -1081,6 +1084,7 @@ if [ "$1" != "0" ]; then
|
||||
.gsub!(/: \"Spotify\"/,': \"$Spotify#delete_\"')
|
||||
.gsub!(/: \"ChatGPT\"/,': \"$ChatGPT#delete_\"')
|
||||
.gsub!(/: \"Steam\"/,': \"$Steam#delete_\"')
|
||||
.gsub!(/: \"miHoYo\"/,': \"$miHoYo#delete_\"')
|
||||
.gsub!(/: \"AdBlock\"/,': \"$AdBlock#delete_\"')
|
||||
.gsub!(/: \"Speedtest\"/,': \"$Speedtest#delete_\"')
|
||||
.gsub!(/: \"Telegram\"/,': \"$Telegram#delete_\"')
|
||||
@ -1155,4 +1159,4 @@ if [ "$1" != "0" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}"
|
||||
yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}" "${13}"
|
||||
|
@ -1,8 +1,8 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2022-10-23 17:26+0000\n"
|
||||
"Last-Translator: Amaury <y0da@live.fr>\n"
|
||||
"PO-Revision-Date: 2023-06-18 10:26+0000\n"
|
||||
"Last-Translator: viking76 <liaudetgael@gmail.com>\n"
|
||||
"Language-Team: French <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationswatchcat/fr/>\n"
|
||||
"Language: fr\n"
|
||||
@ -10,7 +10,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 4.14.2-dev\n"
|
||||
"X-Generator: Weblate 4.18.1\n"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:104
|
||||
msgid ""
|
||||
@ -23,7 +23,7 @@ msgstr ""
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:60
|
||||
msgid "Address family for pinging the host"
|
||||
msgstr ""
|
||||
msgstr "Famille d'adresses pour le ping de l'hôte"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:94
|
||||
msgid ""
|
||||
@ -107,7 +107,7 @@ msgstr "Énorme : 1492 octets"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:52
|
||||
msgid "IP address or hostname to ping."
|
||||
msgstr ""
|
||||
msgstr "Adresse IP ou nom d'hôte à interroger."
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:118
|
||||
msgid ""
|
||||
@ -130,6 +130,17 @@ msgid ""
|
||||
"li><li>5 minutes would be: <b>5m</b></li><li> 1 hour would be: <b>1h</b></"
|
||||
"li><li>1 week would be: <b>7d</b></li><ul>"
|
||||
msgstr ""
|
||||
"En mode Redémarrage périodique, elle définit la fréquence de redémarrage. "
|
||||
"<br />En mode Redémarrage par ping, elle définit la plus longue période sans "
|
||||
"réponse de l'hôte à vérifier avant qu'un redémarrage ne soit engagé. <br /"
|
||||
">En mode Redémarrage du réseau, elle définit la plus longue période sans "
|
||||
"réponse de l'hôte à vérifier avant que l'interface ne soit redémarrée. <br /"
|
||||
"><br />L'unité par défaut est la seconde, sans suffixe, mais vous pouvez "
|
||||
"utiliser le suffixe <b>m</b> pour les minutes, <b>h</b> pour les heures ou "
|
||||
"<b>d</b> pour les jours. <br /><br />Exemples :<ul><li>10 secondes "
|
||||
"seraient : <b>10</b> ou <b>10s</b></li><li>5 minutes seraient : <b>5m</b></"
|
||||
"li><li><li>1 heure serait : <b>1h</b></li><li>1 semaine serait : <b>7j</b></"
|
||||
"li><ul>"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:102
|
||||
msgid "Interface"
|
||||
@ -176,6 +187,13 @@ msgid ""
|
||||
"time. <br /> Run Script: Run a script if a ping to a specified host fails "
|
||||
"for a specified duration of time. <br />"
|
||||
msgstr ""
|
||||
"Ping Reboot : Redémarrez ce périphérique si un ping vers un hôte spécifié "
|
||||
"échoue pendant une durée spécifiée. <br /> Redémarrage périodique : "
|
||||
"Redémarrez cet appareil après un intervalle de temps spécifié. <br /> "
|
||||
"Redémarrer l'interface : Redémarrez une interface réseau si un ping vers un "
|
||||
"hôte spécifié échoue pendant une durée spécifiée. <br /> Exécuter le "
|
||||
"script : exécutez un script si un ping vers un hôte spécifié échoue pendant "
|
||||
"une durée spécifiée. <br />"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:29
|
||||
msgid "Restart Interface"
|
||||
@ -183,17 +201,19 @@ msgstr "Redémarrer l'interface"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:30
|
||||
msgid "Run Script"
|
||||
msgstr ""
|
||||
msgstr "Script de lancement"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:33
|
||||
msgid "Script to run"
|
||||
msgstr ""
|
||||
msgstr "Script à exécuter"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:34
|
||||
msgid ""
|
||||
"Script to run when the host has not responded for the specified duration of "
|
||||
"time. The script is passed the interface name as $1"
|
||||
msgstr ""
|
||||
"Script à exécuter lorsque l'hôte n'a pas répondu pendant la durée spécifiée. "
|
||||
"Le script reçoit le nom de l'interface en tant que $1"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:81
|
||||
msgid "Small: 1 byte"
|
||||
|
@ -1,8 +1,8 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2023-03-26 16:40+0000\n"
|
||||
"Last-Translator: Nguyễn văn tuyên <admin@tuyen.vn>\n"
|
||||
"PO-Revision-Date: 2023-06-20 13:51+0000\n"
|
||||
"Last-Translator: Quy <haonguyen93056@gmail.com>\n"
|
||||
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationswatchcat/vi/>\n"
|
||||
"Language: vi\n"
|
||||
@ -10,7 +10,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 4.17-dev\n"
|
||||
"X-Generator: Weblate 4.18.1\n"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:104
|
||||
msgid ""
|
||||
@ -23,7 +23,7 @@ msgstr ""
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:60
|
||||
msgid "Address family for pinging the host"
|
||||
msgstr ""
|
||||
msgstr "Address family for pinging the host"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:94
|
||||
msgid ""
|
||||
@ -33,6 +33,11 @@ msgid ""
|
||||
"fail. Enter the number of seconds to wait for the soft reboot to fail or use "
|
||||
"0 to disable the forced reboot delay."
|
||||
msgstr ""
|
||||
"Áp dụng cho chế độ Khởi động lại Ping và Khởi động lại định kỳ</i> <br />Khi "
|
||||
"khởi động lại bộ định tuyến, dịch vụ sẽ kích hoạt khởi động lại mềm. Nhập "
|
||||
"một giá trị khác không ở đây sẽ kích hoạt khởi động lại cứng bị trì hoãn nếu "
|
||||
"khởi động lại mềm không thành công. Nhập số giây để chờ khởi động lại mềm "
|
||||
"không thành công hoặc sử dụng 0 để vô hiệu hóa độ trễ khởi động lại bắt buộc."
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:111
|
||||
msgid ""
|
||||
@ -40,26 +45,29 @@ msgid ""
|
||||
"ModemManager, you can have Watchcat restart your ModemManger interface by "
|
||||
"specifying its name."
|
||||
msgstr ""
|
||||
"Áp dụng cho chế độ Khởi động lại Ping và Khởi động lại giao diện</i> <br /"
|
||||
">Nếu sử dụng ModemManager, bạn có thể yêu cầu Watchcat khởi động lại giao "
|
||||
"diện ModemManger của mình bằng cách chỉ định tên của nó."
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:84
|
||||
msgid "Big: 248 bytes"
|
||||
msgstr ""
|
||||
msgstr "Big: 248 bytes"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:70
|
||||
msgid "Check Interval"
|
||||
msgstr ""
|
||||
msgstr "Kiểm tra khoảng thời gian"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:93
|
||||
msgid "Force Reboot Delay"
|
||||
msgstr ""
|
||||
msgstr "Force Reboot Delay"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:19
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
msgstr "Các cài đặt chung"
|
||||
|
||||
#: applications/luci-app-watchcat/root/usr/share/rpcd/acl.d/luci-app-watchcat.json:3
|
||||
msgid "Grant access to LuCI app watchcat"
|
||||
msgstr ""
|
||||
msgstr "Cấp quyền truy cập vào ứng dụng LuCI watchcat"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:12
|
||||
msgid ""
|
||||
@ -67,10 +75,13 @@ msgid ""
|
||||
"host becomes unreachable. Click the <b>Add</b> button at the bottom to set "
|
||||
"up more than one action."
|
||||
msgstr ""
|
||||
"Tại đây, bạn có thể thiết lập một số kiểm tra và hành động cần thực hiện "
|
||||
"trong trường hợp máy chủ không thể truy cập được. Nhấp vào nút <b>Thêm</b> ở "
|
||||
"dưới cùng để thiết lập nhiều hành động."
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:52
|
||||
msgid "Host To Check"
|
||||
msgstr ""
|
||||
msgstr "Máy chủ để kiểm tra"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:71
|
||||
msgid ""
|
||||
@ -81,20 +92,28 @@ msgid ""
|
||||
"b></li><li>1 hour would be: <b>1h</b></li><li>1 week would be: <b>7d</b></"
|
||||
"li><ul>"
|
||||
msgstr ""
|
||||
"Tần suất ping máy chủ được chỉ định ở trên. <br /><br />Đơn vị mặc định là "
|
||||
"giây, không có hậu tố, nhưng bạn có thể sử dụng hậu tố <b>m</b> cho phút, "
|
||||
"<b>h</b> cho giờ hoặc <b>d </b> trong nhiều ngày. <br /><br /> Ví dụ:"
|
||||
"<ul><li>10 giây sẽ là: <b>10</b> hoặc <b>10 giây</b></li><li>5 phút sẽ là: "
|
||||
"<b>5 phút</b></li><li>1 giờ sẽ là: <b>1h</b></li><li>1 tuần sẽ là: <b>7 "
|
||||
"ngày</b></ li><ul>"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:85
|
||||
msgid "Huge: 1492 bytes"
|
||||
msgstr ""
|
||||
msgstr "Huge: 1492 bytes"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:52
|
||||
msgid "IP address or hostname to ping."
|
||||
msgstr ""
|
||||
msgstr "Địa chỉ IP hoặc tên máy chủ để ping."
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:118
|
||||
msgid ""
|
||||
"If using ModemManager, then before restarting the interface, set the modem "
|
||||
"to be allowed to use any band."
|
||||
msgstr ""
|
||||
"Nếu sử dụng ModemManager, thì trước khi khởi động lại giao diện, hãy đặt "
|
||||
"modem được phép sử dụng bất kỳ băng tần nào."
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:41
|
||||
msgid ""
|
||||
@ -109,42 +128,53 @@ msgid ""
|
||||
"li><li>5 minutes would be: <b>5m</b></li><li> 1 hour would be: <b>1h</b></"
|
||||
"li><li>1 week would be: <b>7d</b></li><ul>"
|
||||
msgstr ""
|
||||
"Trong chế độ Khởi động lại định kỳ, nó xác định tần suất khởi động lại. <br /"
|
||||
">Trong chế độ Khởi động lại Ping, nó xác định khoảng thời gian dài nhất mà "
|
||||
"Máy chủ không có phản hồi để kiểm tra trước khi thực hiện khởi động lại. "
|
||||
"<br />Trong chế độ Khởi động lại mạng hoặc Chạy tập lệnh, nó xác định khoảng "
|
||||
"thời gian dài nhất mà Máy chủ không phản hồi để Kiểm tra trước khi giao diện "
|
||||
"được khởi động lại hoặc tập lệnh được chạy. <br /><br />Đơn vị mặc định là "
|
||||
"giây, không có hậu tố, nhưng bạn có thể sử dụng hậu tố <b>m</b> cho phút, "
|
||||
"<b>h</b> cho giờ hoặc <b>d </b> trong nhiều ngày. <br /><br />Ví dụ:"
|
||||
"<ul><li>10 giây sẽ là: <b>10</b> hoặc <b>10 giây</b></li><li>5 phút sẽ là: "
|
||||
"<b>5 phút</b></li><li> 1 giờ sẽ là: <b>1h</b></li><li>1 tuần sẽ là: <b>7 "
|
||||
"ngày</b></ li><ul>"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:102
|
||||
msgid "Interface"
|
||||
msgstr ""
|
||||
msgstr "Giao diện"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:103
|
||||
msgid "Interface to monitor and/or restart"
|
||||
msgstr ""
|
||||
msgstr "Giao diện để theo dõi và/hoặc khởi động lại"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:86
|
||||
msgid "Jumbo: 9000 bytes"
|
||||
msgstr ""
|
||||
msgstr "Jumbo: 9000 bytes"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:22
|
||||
msgid "Mode"
|
||||
msgstr ""
|
||||
msgstr "Chế độ"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:110
|
||||
msgid "Name of ModemManager Interface"
|
||||
msgstr ""
|
||||
msgstr "Tên giao diện ModemManager"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:40
|
||||
msgid "Period"
|
||||
msgstr ""
|
||||
msgstr "Giai đoạn"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:28
|
||||
msgid "Periodic Reboot"
|
||||
msgstr ""
|
||||
msgstr "Khởi động lại định kỳ"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:80
|
||||
msgid "Ping Packet Size"
|
||||
msgstr ""
|
||||
msgstr "Kích thước gói Ping"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:27
|
||||
msgid "Ping Reboot"
|
||||
msgstr ""
|
||||
msgstr "Khởi động lại Ping"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:23
|
||||
msgid ""
|
||||
@ -155,47 +185,57 @@ msgid ""
|
||||
"time. <br /> Run Script: Run a script if a ping to a specified host fails "
|
||||
"for a specified duration of time. <br />"
|
||||
msgstr ""
|
||||
"Khởi động lại Ping: Khởi động lại thiết bị này nếu ping đến một máy chủ được "
|
||||
"chỉ định không thành công trong một khoảng thời gian nhất định. <br />Khởi "
|
||||
"động lại định kỳ: Khởi động lại thiết bị này sau một khoảng thời gian nhất "
|
||||
"định. <br />Khởi động lại giao diện: Khởi động lại giao diện mạng nếu ping "
|
||||
"đến một máy chủ cụ thể không thành công trong một khoảng thời gian cụ thể. "
|
||||
"<br />Chạy tập lệnh: Chạy tập lệnh nếu lệnh ping đến một máy chủ cụ thể "
|
||||
"không thành công trong một khoảng thời gian cụ thể. <br />"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:29
|
||||
msgid "Restart Interface"
|
||||
msgstr ""
|
||||
msgstr "Khởi động lại giao thức"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:30
|
||||
msgid "Run Script"
|
||||
msgstr ""
|
||||
msgstr "Chạy Script"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:33
|
||||
msgid "Script to run"
|
||||
msgstr ""
|
||||
msgstr "Đoạn mã để chạy"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:34
|
||||
msgid ""
|
||||
"Script to run when the host has not responded for the specified duration of "
|
||||
"time. The script is passed the interface name as $1"
|
||||
msgstr ""
|
||||
"Tập lệnh chạy khi máy chủ không phản hồi trong khoảng thời gian đã chỉ định. "
|
||||
"Tập lệnh được chuyển tên giao diện là $1"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:81
|
||||
msgid "Small: 1 byte"
|
||||
msgstr ""
|
||||
msgstr "Small: 1 byte"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:83
|
||||
msgid "Standard: 56 bytes"
|
||||
msgstr ""
|
||||
msgstr "Standard: 56 bytes"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:15
|
||||
msgid "These rules will govern how this device reacts to network events."
|
||||
msgstr ""
|
||||
"Các quy tắc này sẽ chi phối cách thiết bị này phản ứng với các sự kiện mạng."
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:117
|
||||
msgid "Unlock Modem Bands"
|
||||
msgstr ""
|
||||
msgstr "Mở khóa băng tần modem"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:11
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:15
|
||||
#: applications/luci-app-watchcat/root/usr/share/luci/menu.d/luci-app-watchcat.json:3
|
||||
msgid "Watchcat"
|
||||
msgstr ""
|
||||
msgstr "Watchcat"
|
||||
|
||||
#: applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js:82
|
||||
msgid "Windows: 32 bytes"
|
||||
msgstr ""
|
||||
msgstr "Windows: 32 bytes"
|
||||
|
Loading…
Reference in New Issue
Block a user