mirror of
https://github.com/asdlokj1qpi233/subconverter.git
synced 2025-10-27 20:03:01 +00:00
Add support for using TOML as configuration file format
Add basic support for trojan-grpc nodes. Refactor codes.
This commit is contained in:
30
base/config/example_external_config.toml
Normal file
30
base/config/example_external_config.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
version = 1
|
||||
[custom]
|
||||
enable_rule_generator = false
|
||||
overwrite_original_rules = false
|
||||
|
||||
# Options for custom base configuration file
|
||||
clash_rule_base = "base/forcerule.yml"
|
||||
#surge_rule_base = "base/surge.conf"
|
||||
#surfboard_rule_base = "base/surfboard.conf"
|
||||
#mellow_rule_base = "base/mellow.conf"
|
||||
#quan_rule_base = "base/quan.conf"
|
||||
#quanx_rule_base = "base/quanx.conf"
|
||||
|
||||
# Options for adding emojis
|
||||
#add_emoji = true
|
||||
#remove_old_emoji = true
|
||||
|
||||
# Options for filtering nodes
|
||||
#include_remarks = []
|
||||
#exclude_remarks = []
|
||||
|
||||
[[custom_groups]]
|
||||
import = "snippets/groups_forcerule.toml"
|
||||
|
||||
#[[rulesets]]
|
||||
#import = ""
|
||||
|
||||
[[template_args]]
|
||||
key = "clash.dns.port"
|
||||
value = 5353
|
||||
322
base/pref.example.toml
Normal file
322
base/pref.example.toml
Normal file
@@ -0,0 +1,322 @@
|
||||
version = 1
|
||||
[common]
|
||||
# API mode, set to true to prevent loading local subscriptions or serving local files directly
|
||||
api_mode = false
|
||||
|
||||
# Access token used for performing critical action through Web interface
|
||||
api_access_token = "password"
|
||||
|
||||
# Default URLs, used when no URL is provided in request, use "|" to separate multiple subscription links, supports local files/URL
|
||||
default_url = []
|
||||
|
||||
# Insert subscription links to requests. Can be used to add node(s) to all exported subscriptions.
|
||||
enable_insert = true
|
||||
# URLs to insert before subscription links, can be used to add node(s) to all exported subscriptions, supports local files/URL
|
||||
insert_url = [""]
|
||||
# Prepend inserted URLs to subscription links. Nodes in insert_url will be added to groups first with non-group-specific match pattern.
|
||||
prepend_insert_url = true
|
||||
|
||||
# Exclude nodes which remarks match the following patterns. Supports regular expression.
|
||||
exclude_remarks = ["(到期|剩余流量|时间|官网|产品)"]
|
||||
|
||||
# Only include nodes which remarks match the following patterns. Supports regular expression.
|
||||
#include_remarks = ["V3.*港"]
|
||||
|
||||
# Enable script support for filtering nodes
|
||||
enable_filter = false
|
||||
# Script used for filtering nodes. Supports inline script and script path. A "filter" function with 1 argument which is a node should be defined in the script.
|
||||
# Example: Inline script: Set value to content of script.
|
||||
# Script path: Set value to "path:/path/to/script.js".
|
||||
#filter_script = '''
|
||||
#function filter(node) {
|
||||
# const info = JSON.parse(node.ProxyInfo);
|
||||
# if(info.EncryptMethod.includes('chacha20'))
|
||||
# return true;
|
||||
# return false;
|
||||
#}
|
||||
#'''
|
||||
|
||||
# Setting an external config file as default when none is specified, supports local files/URL
|
||||
# default_external_config = "config/example_external_config.toml"
|
||||
|
||||
# The file scope limit of the 'rule_base' options in external configs.
|
||||
base_path = "base"
|
||||
|
||||
# Clash config base used by the generator, supports local files/URL
|
||||
clash_rule_base = "base/all_base.tpl"
|
||||
|
||||
# Surge config base used by the generator, supports local files/URL
|
||||
surge_rule_base = "base/all_base.tpl"
|
||||
|
||||
# Surfboard config base used by the generator, supports local files/URL
|
||||
surfboard_rule_base = "base/all_base.tpl"
|
||||
|
||||
# Mellow config base used by the generator, supports local files/URL
|
||||
mellow_rule_base = "base/all_base.tpl"
|
||||
|
||||
# Quantumult config base used by the generator, supports local files/URL
|
||||
quan_rule_base = "base/all_base.tpl"
|
||||
|
||||
# Quantumult X config base used by the generator, supports local files/URL
|
||||
quanx_rule_base = "base/all_base.tpl"
|
||||
|
||||
# Loon config base used by the generator, supports local files/URL
|
||||
loon_rule_base = "base/all_base.tpl"
|
||||
|
||||
# Shadowsocks Android config base used by the generator, supports local files/URL
|
||||
sssub_rule_base = "base/all_base.tpl"
|
||||
|
||||
# Proxy used to download rulesets or subscriptions, set to NONE or empty to disable it, set to SYSTEM to use system proxy.
|
||||
# Accept cURL-supported proxies (http:// https:// socks4a:// socks5://)
|
||||
|
||||
proxy_config = "SYSTEM"
|
||||
proxy_ruleset = "SYSTEM"
|
||||
proxy_subscription = "NONE"
|
||||
|
||||
# Append a proxy type string ([SS] [SSR] [VMess]) to node remark.
|
||||
append_proxy_type = false
|
||||
|
||||
[[userinfo.stream_rule]]
|
||||
# Rules to extract stream data from node
|
||||
# Format: full_match_regex|new_format_regex
|
||||
# where new_format_regex should be like "total=$1&left=$2&used=$3"
|
||||
match = '^剩余流量:(.*?)\|总流量:(.*)$'
|
||||
replace = 'total=$2&left=$1'
|
||||
|
||||
[[userinfo.stream_rule]]
|
||||
match = '^剩余流量:(.*?) (.*)$'
|
||||
replace = 'total=$1&left=$2'
|
||||
|
||||
[[userinfo.stream_rule]]
|
||||
match = '^Bandwidth: (.*?)/(.*)$'
|
||||
replace = 'used=$1&total=$2'
|
||||
|
||||
[[userinfo.stream_rule]]
|
||||
match = '^.*剩余(.*?)(?:\s*?)@(?:.*)$'
|
||||
replace = 'total=$1'
|
||||
|
||||
[[userinfo.time_rule]]
|
||||
# Rules to extract expire time data from node
|
||||
# Format: full_match_regex|new_format_regex
|
||||
# where new_format_regex should follow this example: yyyy:mm:dd:hh:mm:ss
|
||||
match = '^过期时间:(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)$'
|
||||
replace = '$1:$2:$3:$4:$5:$6'
|
||||
|
||||
[[userinfo.time_rule]]
|
||||
match = '^到期时间:(\d+)-(\d+)-(\d+)$'
|
||||
replace = '$1:$2:$3:0:0:0'
|
||||
|
||||
[[userinfo.time_rule]]
|
||||
match = '^Smart Access expire: (\d+)/(\d+)/(\d+)$'
|
||||
replace = '$1:$2:$3:0:0:0'
|
||||
|
||||
[node_pref]
|
||||
udp_flag = true
|
||||
tcp_fast_open_flag = false
|
||||
skip_cert_verify_flag = true
|
||||
tls13_flag = false
|
||||
|
||||
sort_flag = false
|
||||
# Script used for sorting nodes. A "compare" function with 2 arguments which are the 2 nodes to be compared should be defined in the script. Supports inline script and script path.
|
||||
# Examples can be seen at the filter_script option in [common] section.
|
||||
#sort_script = '''
|
||||
#function compare(node_a, node_b) {
|
||||
# return info_a.Remark > info_b.Remark;
|
||||
#}
|
||||
#'''
|
||||
|
||||
filter_deprecated_nodes = false
|
||||
append_sub_userinfo = true
|
||||
clash_use_new_field_name = true
|
||||
|
||||
# Generate style of the proxies section of Clash subscriptions.
|
||||
# Supported styles: block, flow, compact
|
||||
# Block: - name: name1 Flow: - {name: name1, key: value} Compact: [{name: name1, key: value},{name: name2, key: value}]
|
||||
# key: value - {name: name2, key: value}
|
||||
# - name: name2
|
||||
# key: value
|
||||
clash_proxies_style = "flow"
|
||||
|
||||
[[node_pref.rename_node]]
|
||||
match = '\(?((x|X)?(\d+)(\.?\d+)?)((\s?倍率?)|(x|X))\)?'
|
||||
replace = "$1x"
|
||||
|
||||
[managed_config]
|
||||
# Append a '#!MANAGED-CONFIG' info to Surge configurations
|
||||
write_managed_config = true
|
||||
|
||||
# Address prefix for MANAGED-CONFIG info, without the trailing "/".
|
||||
managed_config_prefix = "http://127.0.0.1:25500"
|
||||
|
||||
# Managed config update interval in seconds, determine how long the config will be updated.
|
||||
config_update_interval = 86400
|
||||
|
||||
# If config_update_strict is set to true, Surge will require a force update after the interval.
|
||||
config_update_strict = false
|
||||
|
||||
# Device ID to be written to rewrite scripts for some version of Quantumult X
|
||||
quanx_device_id = ""
|
||||
|
||||
[surge_external_proxy]
|
||||
#surge_ssr_path = "/usr/bin/ssr-local"
|
||||
resolve_hostname = true
|
||||
|
||||
[emojis]
|
||||
add_emoji = false
|
||||
remove_old_emoji = true
|
||||
|
||||
[[emojis.emoji]]
|
||||
#match = '(流量|时间|应急)'
|
||||
#emoji = '🏳️🌈'
|
||||
import = "snippets/emoji.toml"
|
||||
|
||||
# [[custom_groups]]
|
||||
# name = "Auto"
|
||||
# type = "url-test"
|
||||
# rule = [".*"]
|
||||
# url = "http://www.gstatic.com/generate_204"
|
||||
# interval = 300
|
||||
# tolerance = 150
|
||||
# lazy = true
|
||||
|
||||
# [[custom_groups]]
|
||||
# name = "Proxy"
|
||||
# type = "select"
|
||||
# rule = [".*", "[]DIRECT"]
|
||||
# disable_udp = false
|
||||
|
||||
# [[custom_groups]]
|
||||
# name = "LoadBalance"
|
||||
# type = "load-balance"
|
||||
# rule = [".*", "[]Proxy", "[]DIRECT"]
|
||||
# interval = 100
|
||||
# strategy = "consistent-hashing"
|
||||
# url = "http://www.gstatic.com/generate_204"
|
||||
|
||||
[[custom_groups]]
|
||||
import = "snippets/groups.toml"
|
||||
|
||||
[ruleset]
|
||||
# Enable generating rules with rulesets
|
||||
enabled = true
|
||||
|
||||
# Overwrite the existing rules in rule_base
|
||||
overwrite_original_rules = false
|
||||
|
||||
# Perform a ruleset update on request
|
||||
update_ruleset_on_request = false
|
||||
|
||||
# [[rulesets]]
|
||||
# group = "Proxy"
|
||||
# ruleset = "https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/Unbreak.list"
|
||||
# type = "surge-ruleset"
|
||||
# interval = 86400
|
||||
|
||||
[[rulesets]]
|
||||
import = "snippets/rulesets.toml"
|
||||
|
||||
[template]
|
||||
template_path = "template"
|
||||
|
||||
[[template.globals]]
|
||||
key = "clash.http_port"
|
||||
value = "7890"
|
||||
|
||||
[[template.globals]]
|
||||
key = "clash.socks_port"
|
||||
value = "7891"
|
||||
|
||||
[[template.globals]]
|
||||
key = "clash.allow_lan"
|
||||
value = "true"
|
||||
|
||||
[[template.globals]]
|
||||
key = "clash.log_level"
|
||||
value = "info"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/clash"
|
||||
target = "/sub?target=clash"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/clashr"
|
||||
target = "/sub?target=clashr"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/surge"
|
||||
target = "/sub?target=surge"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/quan"
|
||||
target = "/sub?target=quan"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/quanx"
|
||||
target = "/sub?target=quanx"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/mellow"
|
||||
target = "/sub?target=mellow"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/surfboard"
|
||||
target = "/sub?target=surfboard"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/loon"
|
||||
target = "/sub?target=loon"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/ss"
|
||||
target = "/sub?target=ss"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/ssd"
|
||||
target = "/sub?target=ssd"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/sssub"
|
||||
target = "/sub?target=sssub"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/ssr"
|
||||
target = "/sub?target=ssr"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/v2ray"
|
||||
target = "/sub?target=v2ray"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/trojan"
|
||||
target = "/sub?target=trojan"
|
||||
|
||||
[[aliases]]
|
||||
uri = "/test"
|
||||
target = "/render?path=templates/test.tpl"
|
||||
|
||||
#[[tasks]]
|
||||
#name = "tick"
|
||||
#cronexp = "0/10 * * * * ?"
|
||||
#path = "tick.js"
|
||||
#timeout = 3
|
||||
|
||||
[server]
|
||||
listen = "0.0.0.0"
|
||||
port = 25500
|
||||
serve_file_root = "web"
|
||||
|
||||
[advanced]
|
||||
log_level = "debug"
|
||||
print_debug_info = true
|
||||
max_pending_connections = 10240
|
||||
max_concurrent_threads = 4
|
||||
max_allowed_rulesets = 64
|
||||
max_allowed_rules = 0
|
||||
max_allowed_download_size = 0
|
||||
enable_cache = true
|
||||
cache_subscription = 60
|
||||
cache_config = 300
|
||||
cache_ruleset = 21600
|
||||
script_clean_context = true
|
||||
async_fetch_ruleset = false
|
||||
skip_failed_links = true
|
||||
160
base/snippets/emoji.toml
Normal file
160
base/snippets/emoji.toml
Normal file
@@ -0,0 +1,160 @@
|
||||
[[emoji]]
|
||||
match = "(?i:流量|时间|应急|过期|Bandwidth|expire)"
|
||||
emoji = "🏳️🌈"
|
||||
|
||||
[[emoji]]
|
||||
match = "AC"
|
||||
emoji = "🇦🇨"
|
||||
|
||||
[[emoji]]
|
||||
match = "(AR|阿根廷)"
|
||||
emoji = "🇦🇷"
|
||||
|
||||
[[emoji]]
|
||||
match = "(奥地利|维也纳)"
|
||||
emoji = "🇦🇹"
|
||||
|
||||
[[emoji]]
|
||||
match = "(AU|Australia|Sydney|澳大利亚|悉尼)"
|
||||
emoji = "🇦🇺"
|
||||
|
||||
[[emoji]]
|
||||
match = "BE"
|
||||
emoji = "🇧🇪"
|
||||
|
||||
[[emoji]]
|
||||
match = "(BR|Brazil|巴西|圣保罗)"
|
||||
emoji = "🇧🇷"
|
||||
|
||||
[[emoji]]
|
||||
match = "(Canada|加拿大|蒙特利尔|温哥华|楓葉|枫叶)"
|
||||
emoji = "🇨🇦"
|
||||
|
||||
[[emoji]]
|
||||
match = "(瑞士|苏黎世)"
|
||||
emoji = "🇨🇭"
|
||||
|
||||
[[emoji]]
|
||||
match = "(DE|Germany|法兰克福|德)"
|
||||
emoji = "🇩🇪"
|
||||
|
||||
[[emoji]]
|
||||
match = "丹麦"
|
||||
emoji = "🇩🇰"
|
||||
|
||||
[[emoji]]
|
||||
match = "ES"
|
||||
emoji = "🇪🇸"
|
||||
|
||||
[[emoji]]
|
||||
match = "EU"
|
||||
emoji = "🇪🇺"
|
||||
|
||||
[[emoji]]
|
||||
match = "(Finland|芬兰|赫尔辛基)"
|
||||
emoji = "🇫🇮"
|
||||
|
||||
[[emoji]]
|
||||
match = "(FR|France|法国|巴黎)"
|
||||
emoji = "🇫🇷"
|
||||
|
||||
[[emoji]]
|
||||
match = "(?i:UK|England|United.*?Kingdom|英国|[^-]英|伦敦)"
|
||||
emoji = "🇬🇧"
|
||||
|
||||
[[emoji]]
|
||||
match = "(?i:HK|Hong.*?Kong|HKT|HKBN|HGC|WTT|CMI|[^-]港)"
|
||||
emoji = "🇭🇰"
|
||||
|
||||
[[emoji]]
|
||||
match = "(Indonesia|印尼|印度尼西亚|雅加达)"
|
||||
emoji = "🇮🇩"
|
||||
|
||||
[[emoji]]
|
||||
match = "(Ireland|爱尔兰|都柏林)"
|
||||
emoji = "🇮🇪"
|
||||
|
||||
[[emoji]]
|
||||
match = "(India|印度|孟买)"
|
||||
emoji = "🇮🇳"
|
||||
|
||||
[[emoji]]
|
||||
match = "(Italy|意大利|米兰)"
|
||||
emoji = "🇮🇹"
|
||||
|
||||
[[emoji]]
|
||||
match = "(JP|Japan|日本|[^-]日)"
|
||||
emoji = "🇯🇵"
|
||||
|
||||
[[emoji]]
|
||||
match = "(KP|朝鲜)"
|
||||
emoji = "🇰🇵"
|
||||
|
||||
[[emoji]]
|
||||
match = "(KR|Korea|KOR|首尔|韩|韓)"
|
||||
emoji = "🇰🇷"
|
||||
|
||||
[[emoji]]
|
||||
match = "(MO|Macao|澳门|CTM)"
|
||||
emoji = "🇲🇴"
|
||||
|
||||
[[emoji]]
|
||||
match = "(MY|Malaysia|马来西亚)"
|
||||
emoji = "🇲🇾"
|
||||
|
||||
[[emoji]]
|
||||
match = "(NL|Netherlands|荷兰|阿姆斯特丹)"
|
||||
emoji = "🇳🇱"
|
||||
|
||||
[[emoji]]
|
||||
match = "(PH|Philippines|菲律宾)"
|
||||
emoji = "🇵🇭"
|
||||
|
||||
[[emoji]]
|
||||
match = "(RO|罗马尼亚)"
|
||||
emoji = "🇷🇴"
|
||||
|
||||
[[emoji]]
|
||||
match = "(RU|Russia|伯力|莫斯科|圣彼得堡|西伯利亚|新西伯利亚|俄罗斯|[^-]俄)"
|
||||
emoji = "🇷🇺"
|
||||
|
||||
[[emoji]]
|
||||
match = "(沙特|迪拜)"
|
||||
emoji = "🇸🇦"
|
||||
|
||||
[[emoji]]
|
||||
match = "(SE|Sweden)"
|
||||
emoji = "🇸🇪"
|
||||
|
||||
[[emoji]]
|
||||
match = "(SG|Singapore|新加坡|狮城|[^-]新)"
|
||||
emoji = "🇸🇬"
|
||||
|
||||
[[emoji]]
|
||||
match = "(TH|Thailand|泰国|曼谷)"
|
||||
emoji = "🇹🇭"
|
||||
|
||||
[[emoji]]
|
||||
match = "(TR|Turkey|土耳其|伊斯坦布尔)"
|
||||
emoji = "🇹🇷"
|
||||
|
||||
[[emoji]]
|
||||
match = "(?i:US|America|United.*?States|美国|[^-]美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥)"
|
||||
emoji = "🇺🇲"
|
||||
|
||||
[[emoji]]
|
||||
match = "(VN|越南)"
|
||||
emoji = "🇻🇳"
|
||||
|
||||
[[emoji]]
|
||||
match = "(ZA|南非)"
|
||||
emoji = "🇿🇦"
|
||||
|
||||
[[emoji]]
|
||||
match = "(?i:TW|Taiwan|新北|彰化|CHT|台湾|[^-]台|HINET)"
|
||||
emoji = "🇨🇳"
|
||||
|
||||
[[emoji]]
|
||||
match = "(?i:CN|China|回国|中国|江苏|北京|上海|广州|深圳|杭州|徐州|青岛|宁波|镇江|back)"
|
||||
emoji = "🇨🇳"
|
||||
|
||||
91
base/snippets/groups.toml
Normal file
91
base/snippets/groups.toml
Normal file
@@ -0,0 +1,91 @@
|
||||
[[custom_groups]]
|
||||
name = "🔰 节点选择"
|
||||
type = "select"
|
||||
rule = ["[]♻️ 自动选择", "[]🎯 全球直连", ".*"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "♻️ 自动选择"
|
||||
type = "url-test"
|
||||
rule = [".*"]
|
||||
url = "http://www.gstatic.com/generate_204"
|
||||
interval = 300
|
||||
|
||||
[[custom_groups]]
|
||||
name = "🎥 NETFLIX"
|
||||
type = "select"
|
||||
rule = [
|
||||
"[]🔰 节点选择",
|
||||
"[]♻️ 自动选择",
|
||||
"[]🎯 全球直连",
|
||||
".*"
|
||||
]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "⛔️ 广告拦截"
|
||||
type = "select"
|
||||
rule = ["[]🛑 全球拦截",
|
||||
"[]🎯 全球直连",
|
||||
"[]🔰 节点选择"
|
||||
]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "🚫 运营劫持"
|
||||
type = "select"
|
||||
rule = ["[]🛑 全球拦截",
|
||||
"[]🎯 全球直连",
|
||||
"[]🔰 节点选择"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "🌍 国外媒体"
|
||||
type = "select"
|
||||
rule = ["[]🔰 节点选择",
|
||||
"[]♻️ 自动选择",
|
||||
"[]🎯 全球直连",
|
||||
".*"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "🌏 国内媒体"
|
||||
type = "select"
|
||||
rule = ["[]🎯 全球直连",
|
||||
"(HGC|HKBN|PCCW|HKT|深台|彰化|新北|台|hk|港|tw)",
|
||||
"[]🔰 节点选择"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "Ⓜ️ 微软服务"
|
||||
type = "select"
|
||||
rule = ["[]🎯 全球直连",
|
||||
"[]🔰 节点选择",
|
||||
".*"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "📲 电报信息"
|
||||
type = "select"
|
||||
rule = ["[]🔰 节点选择",
|
||||
"[]🎯 全球直连",
|
||||
".*"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "🍎 苹果服务"
|
||||
type = "select"
|
||||
rule = ["[]🔰 节点选择",
|
||||
"[]🎯 全球直连",
|
||||
"[]♻️ 自动选择",
|
||||
".*"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "🎯 全球直连"
|
||||
type = "select"
|
||||
rule = ["[]DIRECT"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "🛑 全球拦截"
|
||||
type = "select"
|
||||
rule = ["[]REJECT", "[]DIRECT"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "🐟 漏网之鱼"
|
||||
type = "select"
|
||||
rule = ["[]🔰 节点选择",
|
||||
"[]🎯 全球直连",
|
||||
"[]♻️ 自动选择",
|
||||
".*"]
|
||||
74
base/snippets/groups_forcerule.toml
Normal file
74
base/snippets/groups_forcerule.toml
Normal file
@@ -0,0 +1,74 @@
|
||||
# for forcerule.yml
|
||||
|
||||
[[custom_groups]]
|
||||
name = "Proxy"
|
||||
type = "select"
|
||||
rule = [".*", "[]AUTO", "[]DIRECT", ".*"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "AUTO"
|
||||
type = "url-test"
|
||||
rule = [".*"]
|
||||
url = "http://www.gstatic.com/generate_204"
|
||||
interval = 300
|
||||
|
||||
[[custom_groups]]
|
||||
name = "google"
|
||||
type = "select"
|
||||
rule = [".*"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "netflix"
|
||||
type = "select"
|
||||
rule = [".*"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "动画疯"
|
||||
type = "select"
|
||||
rule = ["(深台|彰化|新北|台)"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "fox+"
|
||||
type = "select"
|
||||
rule = ["(HGC|HKBN|PCCW|HKT|深台|彰化|新北|台|新加坡|sg|hk|tw)"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "美区影视"
|
||||
type = "select"
|
||||
rule = ["(美|美国)"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "Global_media"
|
||||
type = "select"
|
||||
rule = [".*"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "Domestic"
|
||||
type = "select"
|
||||
rule = ["[]DIRECT", "[]Proxy"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "Apple"
|
||||
type = "select"
|
||||
rule = ["[]DIRECT", "[]Proxy"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "Final"
|
||||
type = "select"
|
||||
rule = ["[]Proxy", "[]DIRECT"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "屏蔽广告"
|
||||
type = "select"
|
||||
rule = ["[]REJECT", "[]DIRECT"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "UnblockNeteaseMusic"
|
||||
type = "select"
|
||||
rule = ["云音乐解锁", "[]DIRECT"]
|
||||
|
||||
[[custom_groups]]
|
||||
name = "Telegram"
|
||||
type = "select"
|
||||
rule = ["新加坡", "[]Proxy"]
|
||||
|
||||
177
base/snippets/rename_node.toml
Normal file
177
base/snippets/rename_node.toml
Normal file
@@ -0,0 +1,177 @@
|
||||
# short names
|
||||
[[rename_node]]
|
||||
match = "中国"
|
||||
replace = "中"
|
||||
|
||||
[[rename_node]]
|
||||
match = "徐州"
|
||||
replace = "徐"
|
||||
|
||||
[[rename_node]]
|
||||
match = "深圳"
|
||||
replace = "深"
|
||||
|
||||
[[rename_node]]
|
||||
match = "上海"
|
||||
replace = "沪"
|
||||
|
||||
[[rename_node]]
|
||||
match = "广州"
|
||||
replace = "穗"
|
||||
|
||||
[[rename_node]]
|
||||
match = "宁波"
|
||||
replace = "甬"
|
||||
|
||||
[[rename_node]]
|
||||
match = "贵阳"
|
||||
replace = "筑"
|
||||
|
||||
[[rename_node]]
|
||||
match = "武汉"
|
||||
replace = "汉"
|
||||
|
||||
[[rename_node]]
|
||||
match = "南京"
|
||||
replace = "宁"
|
||||
|
||||
[[rename_node]]
|
||||
match = "天津"
|
||||
replace = "津"
|
||||
|
||||
[[rename_node]]
|
||||
match = "北京"
|
||||
replace = "京"
|
||||
|
||||
[[rename_node]]
|
||||
match = "沈阳"
|
||||
replace = "沈"
|
||||
|
||||
[[rename_node]]
|
||||
match = "江苏"
|
||||
replace = "苏"
|
||||
|
||||
[[rename_node]]
|
||||
match = "浙江"
|
||||
replace = "浙"
|
||||
|
||||
[[rename_node]]
|
||||
match = "安徽"
|
||||
replace = "皖"
|
||||
|
||||
[[rename_node]]
|
||||
match = "福建"
|
||||
replace = "闽"
|
||||
|
||||
[[rename_node]]
|
||||
match = "湖南"
|
||||
replace = "湘"
|
||||
|
||||
[[rename_node]]
|
||||
match = "广东"
|
||||
replace = "粤"
|
||||
|
||||
[[rename_node]]
|
||||
match = "海南"
|
||||
replace = "琼"
|
||||
|
||||
[[rename_node]]
|
||||
match = "四川"
|
||||
replace = "川"
|
||||
|
||||
[[rename_node]]
|
||||
match = "贵州"
|
||||
replace = "贵"
|
||||
|
||||
[[rename_node]]
|
||||
match = "云南"
|
||||
replace = "云"
|
||||
|
||||
[[rename_node]]
|
||||
match = "青海"
|
||||
replace = "青"
|
||||
|
||||
[[rename_node]]
|
||||
match = "台湾"
|
||||
replace = "台"
|
||||
|
||||
[[rename_node]]
|
||||
match = "香港"
|
||||
replace = "港"
|
||||
|
||||
[[rename_node]]
|
||||
match = "澳门"
|
||||
replace = "澳"
|
||||
|
||||
[[rename_node]]
|
||||
match = "美国"
|
||||
replace = "美"
|
||||
|
||||
[[rename_node]]
|
||||
match = "英国"
|
||||
replace = "英"
|
||||
|
||||
[[rename_node]]
|
||||
match = "加拿大"
|
||||
replace = "加"
|
||||
|
||||
[[rename_node]]
|
||||
match = "法国"
|
||||
replace = "法"
|
||||
|
||||
[[rename_node]]
|
||||
match = "德国"
|
||||
replace = "德"
|
||||
|
||||
[[rename_node]]
|
||||
match = "瑞士"
|
||||
replace = "瑞"
|
||||
|
||||
[[rename_node]]
|
||||
match = "日本"
|
||||
replace = "日"
|
||||
|
||||
[[rename_node]]
|
||||
match = "韩国"
|
||||
replace = "韩"
|
||||
|
||||
[[rename_node]]
|
||||
match = "芬兰"
|
||||
replace = "芬"
|
||||
|
||||
[[rename_node]]
|
||||
match = "印度"
|
||||
replace = "印"
|
||||
|
||||
[[rename_node]]
|
||||
match = "泰国"
|
||||
replace = "泰"
|
||||
|
||||
[[rename_node]]
|
||||
match = "越南"
|
||||
replace = "越"
|
||||
|
||||
[[rename_node]]
|
||||
match = "新加坡"
|
||||
replace = "新"
|
||||
|
||||
[[rename_node]]
|
||||
match = "意大利"
|
||||
replace = "意"
|
||||
|
||||
[[rename_node]]
|
||||
match = "菲律宾"
|
||||
replace = "菲"
|
||||
|
||||
[[rename_node]]
|
||||
match = "俄罗斯"
|
||||
replace = "俄"
|
||||
|
||||
[[rename_node]]
|
||||
match = "土耳其"
|
||||
replace = "土"
|
||||
|
||||
# times RE
|
||||
[[rename_node]]
|
||||
match = '\(?((x|X)?(\d+)(\.?\d+)?)((\s?倍率?)|(x|X))\)?'
|
||||
replace = "$1x"
|
||||
80
base/snippets/rulesets.toml
Normal file
80
base/snippets/rulesets.toml
Normal file
@@ -0,0 +1,80 @@
|
||||
[[rulesets]]
|
||||
group = "🎯 全球直连"
|
||||
ruleset = "rules/LocalAreaNetwork.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "Ⓜ️ 微软服务"
|
||||
ruleset = "rules/MSServices.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🎯 全球直连"
|
||||
ruleset = "rules/DivineEngine/Surge/Ruleset/Unbreak.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🛑 全球拦截"
|
||||
ruleset = "rules/NobyDa/Surge/AdRule.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🛑 全球拦截"
|
||||
ruleset = "rules/DivineEngine/Surge/Ruleset/Guard/Hijacking.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = ";🎥 NETFLIX"
|
||||
ruleset = "rules/DivineEngine/Surge/Ruleset/StreamingMedia/Video/Netflix.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🌍 国外媒体"
|
||||
ruleset = "rules/DivineEngine/Surge/Ruleset/StreamingMedia/Streaming.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🌏 国内媒体"
|
||||
ruleset = "rules/lhie1/Surge/Surge 3/Provider/Media/Bilibili.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🌏 国内媒体"
|
||||
ruleset = "rules/lhie1/Surge/Surge 3/Provider/Media/iQiyi.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🌏 国内媒体"
|
||||
ruleset = "rules/lhie1/Surge/Surge 3/Provider/Media/Letv.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🌏 国内媒体"
|
||||
ruleset = "rules/lhie1/Surge/Surge 3/Provider/Media/MOO.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🌏 国内媒体"
|
||||
ruleset = "rules/lhie1/Surge/Surge 3/Provider/Media/Tencent Video.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🌏 国内媒体"
|
||||
ruleset = "rules/lhie1/Surge/Surge 3/Provider/Media/Youku.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "📲 电报信息"
|
||||
ruleset = "rules/DivineEngine/Surge/Ruleset/Extra/Telegram/Telegram.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🔰 节点选择"
|
||||
ruleset = "rules/DivineEngine/Surge/Ruleset/Global.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🍎 苹果服务"
|
||||
ruleset = "rules/DivineEngine/Surge/Ruleset/Extra/Apple/Apple.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🎯 全球直连"
|
||||
ruleset = "rules/DivineEngine/Surge/Ruleset/China.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🎯 全球直连"
|
||||
ruleset = "rules/NobyDa/Surge/Download.list"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🎯 全球直连"
|
||||
ruleset = "[]GEOIP,CN"
|
||||
|
||||
[[rulesets]]
|
||||
group = "🐟 漏网之鱼"
|
||||
ruleset = "[]FINAL"
|
||||
|
||||
Reference in New Issue
Block a user