old
1{
2 den.aspects.services.proxy.mihomo.proxy-groups = {
3 nixos = {
4 services.mihomo = {
5 config = {
6 proxy-groups = let
7 nonsenseKeywords = "回国|校园|网站|地址|剩余|过期|时间|有效|网址|禁止|邮箱|发布|客服|订阅|节点";
8
9 filterHK = "^(?=.*((?i)🇭🇰|香港|\\b(HK|Hong)(\\d+)?\\b))(?!.*((?i)${nonsenseKeywords})).*$";
10 filterTW = "^(?=.*((?i)🇹🇼|台湾|\\b(TW|Tai|Taiwan)(\\d+)?\\b))(?!.*((?i)${nonsenseKeywords})).*$";
11 filterJP = "^(?=.*((?i)🇯🇵|日本|川日|东京|大阪|泉日|埼玉|\\b(JP|Japan)(\\d+)?\\b))(?!.*((?i)${nonsenseKeywords})).*$";
12 filterKR = "^(?=.*((?i)🇰🇷|韩国|韓|首尔|\\b(KR|Korea)(\\d+)?\\b))(?!.*((?i)${nonsenseKeywords})).*$";
13 filterSG = "^(?=.*((?i)🇸🇬|新加坡|狮|\\b(SG|Singapore)(\\d+)?\\b))(?!.*((?i)${nonsenseKeywords})).*$";
14 filterUS = "^(?=.*((?i)🇺🇸|美国|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|\\b(US|United States)(\\d+)?\\b))(?!.*((?i)${nonsenseKeywords})).*$";
15 filterUK = "^(?=.*((?i)🇬🇧|英国|伦敦|\\b(UK|United Kingdom)(\\d+)?\\b))(?!.*((?i)${nonsenseKeywords})).*$";
16 filterFR = "^(?=.*((?i)🇫🇷|法国|\\b(FR|France)(\\d+)?\\b))(?!.*((?i)${nonsenseKeywords})).*$";
17 filterDE = "^(?=.*((?i)🇩🇪|德国|\\b(DE|Germany)(\\d+)?\\b))(?!.*((?i)${nonsenseKeywords})).*$";
18 filterOthers = "^(?!.*(🇭🇰|HK|Hong|香港|🇹🇼|TW|Taiwan|Wan|🇯🇵|JP|Japan|日本|🇸🇬|SG|Singapore|狮城|🇺🇸|US|United States|America|美国|🇩🇪|DE|Germany|德国|🇬🇧|UK|United Kingdom|英国|🇰🇷|KR|Korea|韩国|韓|🇫🇷|FR|France|法国)).*$";
19 filterAll = "^(?=.*(.))(?!.*((?i)群|邀请|返利|循环|官网|客服|网站|网址|获取|订阅|流量|到期|机场|下次|版本|官址|备用|过期|已用|联系|邮箱|工单|贩卖|通知|倒卖|防止|国内|地址|频道|无法|说明|使用|提示|特别|访问|支持|教程|关注|更新|作者|加入|(\\b(USE|USED|TOTAL|EXPIRE|EMAIL|Panel|Channel|Author)\\b|(\\d{4}-\\d{2}-\\d{2}|\\d+G)))).*$";
20
21 select = {
22 type = "select";
23 url = "https://connectivitycheck.platform.hicloud.com/generate_204";
24 disable-udp = false;
25 hidden = false;
26 include-all = true;
27 };
28 urlTest = {
29 type = "url-test";
30 url = "https://connectivitycheck.platform.hicloud.com/generate_204";
31 interval = 300;
32 tolerance = 50;
33 disable-udp = false;
34 hidden = true;
35 include-all = true;
36 };
37
38 regions = {
39 HK = {
40 flag = "🇭🇰";
41 filter = filterHK;
42 };
43 TW = {
44 flag = "🇹🇼";
45 filter = filterTW;
46 };
47 JP = {
48 flag = "🇯🇵";
49 filter = filterJP;
50 };
51 KR = {
52 flag = "🇰🇷";
53 filter = filterKR;
54 };
55 SG = {
56 flag = "🇸🇬";
57 filter = filterSG;
58 };
59 US = {
60 flag = "🇺🇸";
61 filter = filterUS;
62 };
63 UK = {
64 flag = "🇬🇧";
65 filter = filterUK;
66 };
67 FR = {
68 flag = "🇫🇷";
69 filter = filterFR;
70 };
71 DE = {
72 flag = "🇩🇪";
73 filter = filterDE;
74 };
75 };
76 in
77 [
78 {
79 name = "SELECT";
80 type = "select";
81 proxies = ["AUTO" "MANUAL" "DIRECT"];
82 url = "http://connectivitycheck.platform.hicloud.com/generate_204";
83 icon = "https://raw.githubusercontent.com/Orz-3/mini/master/Color/Static.png";
84 }
85 {
86 name = "MANUAL";
87 type = "select";
88 proxies = ["Others - MANUAL"] ++ (map (x: "${regions.${x}.flag} - MANUAL") (builtins.attrNames regions));
89 url = "http://connectivitycheck.platform.hicloud.com/generate_204";
90 icon = "https://raw.githubusercontent.com/Orz-3/mini/master/Color/Cylink.png";
91 }
92 {
93 name = "AUTO";
94 type = "select";
95 proxies = map (x: "${regions.${x}.flag} - AUTO") (builtins.attrNames regions);
96 url = "http://connectivitycheck.platform.hicloud.com/generate_204";
97 icon = "https://raw.githubusercontent.com/Orz-3/mini/master/Color/Urltest.png";
98 }
99 ]
100 ++ (map (x:
101 urlTest
102 // {
103 name = "${regions.${x}.flag} - AUTO";
104 filter = regions.${x}.filter;
105 }) (builtins.attrNames regions))
106 ++ (map (x:
107 select
108 // {
109 name = "${regions.${x}.flag} - MANUAL";
110 filter = regions.${x}.filter;
111 }) (builtins.attrNames regions))
112 ++ [
113 (select
114 // {
115 name = "Others - MANUAL";
116 filter = filterOthers;
117 })
118 (urlTest
119 // {
120 name = "AllIn - AUTO";
121 filter = filterAll;
122 })
123 (select
124 // {
125 name = "AllIn - MANUAL";
126 filter = filterAll;
127 })
128 ];
129 };
130 };
131 };
132 };
133}