Add support for using TOML as configuration file format

Add basic support for trojan-grpc nodes.
Refactor codes.
This commit is contained in:
Tindy X
2021-09-20 17:02:13 +08:00
parent bc0a8dc925
commit 9797197c85
35 changed files with 2345 additions and 531 deletions

160
base/snippets/emoji.toml Normal file
View 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
View 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 = ["[]🔰 节点选择",
"[]🎯 全球直连",
"[]♻️ 自动选择",
".*"]

View 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"]

View 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"

View 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"