Add TCP Trojan support and enhance country detection in external-proxies-sanitizer.js
This commit is contained in:
@@ -176,6 +176,7 @@ const METATAG_RULES = {
|
||||
// 🅶🆃 🆃🆂 🆃🆅 🆆🆅 🆇🆅 🆆🅶 🅽🅸
|
||||
pairMap: {
|
||||
"grpc/trojan": "🅶🆃",
|
||||
"tcp/trojan": "🆃🆃",
|
||||
"tcp/ss": "🆃🆂",
|
||||
"tcp/vless": "🆃🆅",
|
||||
"ws/vless": "🆆🆅",
|
||||
@@ -317,16 +318,20 @@ function detectCountryByName(name) {
|
||||
|
||||
// Fast path: flag emoji
|
||||
if (n.includes("🇦🇪")) return { iso3: "ARE", flag: "🇦🇪", priority: 1, source: "flag" };
|
||||
if (n.includes("🇦🇱")) return { iso3: "ALB", flag: "🇦🇱", priority: 11, source: "flag" };
|
||||
if (n.includes("🇦🇷")) return { iso3: "ARG", flag: "🇦🇷", priority: 2, source: "flag" };
|
||||
if (n.includes("🇦🇹")) return { iso3: "AUT", flag: "🇦🇹", priority: 3, source: "flag" };
|
||||
if (n.includes("🇦🇶")) return { iso3: "ATA", flag: "🇦🇶", priority: 11, source: "flag" };
|
||||
if (n.includes("🇦🇺")) return { iso3: "AUS", flag: "🇦🇺", priority: 4, source: "flag" };
|
||||
if (n.includes("🇧🇪")) return { iso3: "BEL", flag: "🇧🇪", priority: 11, source: "flag" };
|
||||
if (n.includes("🇧🇬")) return { iso3: "BGR", flag: "🇧🇬", priority: 5, source: "flag" };
|
||||
if (n.includes("🇧🇾")) return { iso3: "BLR", flag: "🇧🇾", priority: 6, source: "flag" };
|
||||
if (n.includes("🇧🇷")) return { iso3: "BRA", flag: "🇧🇷", priority: 7, source: "flag" };
|
||||
if (n.includes("🇨🇦")) return { iso3: "CAN", flag: "🇨🇦", priority: 8, source: "flag" };
|
||||
if (n.includes("🇨🇭")) return { iso3: "CHE", flag: "🇨🇭", priority: 9, source: "flag" };
|
||||
if (n.includes("🇨🇳")) return { iso3: "CHN", flag: "🇨🇳", priority: 10, source: "flag" };
|
||||
if (n.includes("🇨🇿")) return { iso3: "CZE", flag: "🇨🇿", priority: 11, source: "flag" };
|
||||
if (n.includes("🇨🇳")) return { iso3: "CHN", flag: "🇨🇳", priority: 10, source: "flag" };
|
||||
if (n.includes("🇨🇾")) return { iso3: "CYP", flag: "🇨🇾", priority: 11, source: "flag" };
|
||||
if (n.includes("🇩🇪")) return { iso3: "DEU", flag: "🇩🇪", priority: 12, source: "flag" };
|
||||
if (n.includes("🇩🇰")) return { iso3: "DNK", flag: "🇩🇰", priority: 13, source: "flag" };
|
||||
if (n.includes("🇪🇪")) return { iso3: "EST", flag: "🇪🇪", priority: 14, source: "flag" };
|
||||
@@ -336,11 +341,13 @@ function detectCountryByName(name) {
|
||||
if (n.includes("🇫🇷")) return { iso3: "FRA", flag: "🇫🇷", priority: 18, source: "flag" };
|
||||
if (n.includes("🇬🇧")) return { iso3: "GBR", flag: "🇬🇧", priority: 19, source: "flag" };
|
||||
if (n.includes("🇬🇪")) return { iso3: "GEO", flag: "🇬🇪", priority: 20, source: "flag" };
|
||||
if (n.includes("🇬🇷")) return { iso3: "GRC", flag: "🇬🇷", priority: 11, source: "flag" };
|
||||
if (n.includes("🇭🇰")) return { iso3: "HKG", flag: "🇭🇰", priority: 21, source: "flag" };
|
||||
if (n.includes("🇭🇷")) return { iso3: "HRV", flag: "🇭🇷", priority: 11, source: "flag" };
|
||||
if (n.includes("🇮🇪")) return { iso3: "IRL", flag: "🇮🇪", priority: 22, source: "flag" };
|
||||
if (n.includes("🇮🇱")) return { iso3: "ISR", flag: "🇮🇱", priority: 23, source: "flag" };
|
||||
if (n.includes("🇮🇳")) return { iso3: "IND", flag: "🇮🇳", priority: 24, source: "flag" };
|
||||
if (n.includes("🇮🇹")) return { iso3: "ITA", flag: "🇮🇹", priority: 25, source: "flag" };
|
||||
if (n.includes("🇮🇸")) return { iso3: "ITA", flag: "🇮🇸", priority: 25, source: "flag" };
|
||||
if (n.includes("🇯🇵")) return { iso3: "JPN", flag: "🇯🇵", priority: 26, source: "flag" };
|
||||
if (n.includes("🇰🇷")) return { iso3: "KOR", flag: "🇰🇷", priority: 27, source: "flag" };
|
||||
if (n.includes("🇰🇿")) return { iso3: "KAZ", flag: "🇰🇿", priority: 28, source: "flag" };
|
||||
@@ -352,15 +359,18 @@ function detectCountryByName(name) {
|
||||
if (n.includes("🇳🇱")) return { iso3: "NLD", flag: "🇳🇱", priority: 34, source: "flag" };
|
||||
if (n.includes("🇳🇴")) return { iso3: "NOR", flag: "🇳🇴", priority: 35, source: "flag" };
|
||||
if (n.includes("🇵🇭")) return { iso3: "PHL", flag: "🇵🇭", priority: 36, source: "flag" };
|
||||
if (n.includes("🇵🇰")) return { iso3: "PAK", flag: "🇵🇰", priority: 11, source: "flag" };
|
||||
if (n.includes("🇵🇱")) return { iso3: "POL", flag: "🇵🇱", priority: 37, source: "flag" };
|
||||
if (n.includes("🇵🇹")) return { iso3: "PRT", flag: "🇵🇹", priority: 38, source: "flag" };
|
||||
if (n.includes("🇷🇴")) return { iso3: "ROU", flag: "🇷🇴", priority: 39, source: "flag" };
|
||||
if (n.includes("🇷🇺")) return { iso3: "RUS", flag: "🇷🇺", priority: 40, source: "flag" };
|
||||
if (n.includes("🇸🇪")) return { iso3: "SWE", flag: "🇸🇪", priority: 41, source: "flag" };
|
||||
if (n.includes("🇸🇬")) return { iso3: "SGP", flag: "🇸🇬", priority: 42, source: "flag" };
|
||||
if (n.includes("🇸🇾")) return { iso3: "SYR", flag: "🇸🇾", priority: 11, source: "flag" };
|
||||
if (n.includes("🇹🇭")) return { iso3: "THA", flag: "🇹🇭", priority: 43, source: "flag" };
|
||||
if (n.includes("🇹🇷")) return { iso3: "TUR", flag: "🇹🇷", priority: 44, source: "flag" };
|
||||
if (n.includes("🇹🇼")) return { iso3: "TWN", flag: "🇹🇼", priority: 45, source: "flag" };
|
||||
if (n.includes("🇺🇦")) return { iso3: "UKR", flag: "🇺🇦", priority: 11, source: "flag" };
|
||||
if (n.includes("🇺🇸")) return { iso3: "USA", flag: "🇺🇸", priority: 46, source: "flag" };
|
||||
if (n.includes("🇻🇳")) return { iso3: "VNM", flag: "🇻🇳", priority: 47, source: "flag" };
|
||||
|
||||
|
||||
@@ -17,3 +17,9 @@ depend() {
|
||||
use dns
|
||||
after firewall
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
# Жестко выдаем права перед каждым запуском.
|
||||
# Подавляем ошибки, чтобы не ломать старт, если ФС вдруг смонтирована в read-only
|
||||
setcap 'cap_net_admin,cap_net_bind_service=+ep' /usr/local/bin/mihomo 2>/dev/null || true
|
||||
}
|
||||
Reference in New Issue
Block a user