From 6b76e578b557aaa66c6adb96bdd9105cb6053971 Mon Sep 17 00:00:00 2001 From: DaTekShaman Date: Mon, 5 Jan 2026 17:07:45 +0300 Subject: [PATCH] Update country detection logic with prioritized flags for improved accuracy --- .../scripts/external-proxies-sanitizer.js | 92 +++++++++---------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/config-sub-converter/scripts/external-proxies-sanitizer.js b/config-sub-converter/scripts/external-proxies-sanitizer.js index 32b5518..412a214 100644 --- a/config-sub-converter/scripts/external-proxies-sanitizer.js +++ b/config-sub-converter/scripts/external-proxies-sanitizer.js @@ -311,52 +311,52 @@ function detectCountryByName(name) { // Fast path: flag emoji if (n.includes("🇦🇪")) return { iso3: "ARE", flag: "🇦🇪", priority: 1, source: "flag" }; - if (n.includes("🇦🇷")) return { iso3: "ARG", flag: "🇦🇷", priority: 1, source: "flag" }; - if (n.includes("🇦🇹")) return { iso3: "AUT", flag: "🇦🇹", priority: 1, source: "flag" }; - if (n.includes("🇦🇺")) return { iso3: "AUS", flag: "🇦🇺", priority: 1, source: "flag" }; - if (n.includes("🇧🇬")) return { iso3: "BGR", flag: "🇧🇬", priority: 1, source: "flag" }; - if (n.includes("🇧🇾")) return { iso3: "BLR", flag: "🇧🇾", priority: 1, source: "flag" }; - if (n.includes("🇧🇷")) return { iso3: "BRA", flag: "🇧🇷", priority: 1, source: "flag" }; - if (n.includes("🇨🇦")) return { iso3: "CAN", flag: "🇨🇦", priority: 1, source: "flag" }; - if (n.includes("🇨🇭")) return { iso3: "CHE", flag: "🇨🇭", priority: 1, source: "flag" }; - if (n.includes("🇨🇳")) return { iso3: "CHN", flag: "🇨🇳", priority: 1, source: "flag" }; - if (n.includes("🇨🇿")) return { iso3: "CZE", flag: "🇨🇿", priority: 1, source: "flag" }; - if (n.includes("🇩🇪")) return { iso3: "DEU", flag: "🇩🇪", priority: 1, source: "flag" }; - if (n.includes("🇩🇰")) return { iso3: "DNK", flag: "🇩🇰", priority: 1, source: "flag" }; - if (n.includes("🇪🇪")) return { iso3: "EST", flag: "🇪🇪", priority: 1, source: "flag" }; - if (n.includes("🇪🇬")) return { iso3: "EGY", flag: "🇪🇬", priority: 1, source: "flag" }; - if (n.includes("🇪🇸")) return { iso3: "ESP", flag: "🇪🇸", priority: 1, source: "flag" }; - if (n.includes("🇫🇮")) return { iso3: "FIN", flag: "🇫🇮", priority: 1, source: "flag" }; - if (n.includes("🇫🇷")) return { iso3: "FRA", flag: "🇫🇷", priority: 1, source: "flag" }; - if (n.includes("🇬🇧")) return { iso3: "GBR", flag: "🇬🇧", priority: 1, source: "flag" }; - if (n.includes("🇬🇪")) return { iso3: "GEO", flag: "🇬🇪", priority: 1, source: "flag" }; - if (n.includes("🇭🇰")) return { iso3: "HKG", flag: "🇭🇰", priority: 1, source: "flag" }; - if (n.includes("🇮🇪")) return { iso3: "IRL", flag: "🇮🇪", priority: 1, source: "flag" }; - if (n.includes("🇮🇱")) return { iso3: "ISR", flag: "🇮🇱", priority: 1, source: "flag" }; - if (n.includes("🇮🇳")) return { iso3: "IND", flag: "🇮🇳", priority: 1, source: "flag" }; - if (n.includes("🇮🇹")) return { iso3: "ITA", flag: "🇮🇹", priority: 1, source: "flag" }; - if (n.includes("🇯🇵")) return { iso3: "JPN", flag: "🇯🇵", priority: 1, source: "flag" }; - if (n.includes("🇰🇷")) return { iso3: "KOR", flag: "🇰🇷", priority: 1, source: "flag" }; - if (n.includes("🇰🇿")) return { iso3: "KAZ", flag: "🇰🇿", priority: 1, source: "flag" }; - if (n.includes("🇱🇹")) return { iso3: "LTU", flag: "🇱🇹", priority: 1, source: "flag" }; - if (n.includes("🇱🇻")) return { iso3: "LVA", flag: "🇱🇻", priority: 1, source: "flag" }; - if (n.includes("🇲🇩")) return { iso3: "MDA", flag: "🇲🇩", priority: 1, source: "flag" }; - if (n.includes("🇲🇾")) return { iso3: "MYS", flag: "🇲🇾", priority: 1, source: "flag" }; - if (n.includes("🇳🇬")) return { iso3: "NGA", flag: "🇳🇬", priority: 1, source: "flag" }; - if (n.includes("🇳🇱")) return { iso3: "NLD", flag: "🇳🇱", priority: 1, source: "flag" }; - if (n.includes("🇳🇴")) return { iso3: "NOR", flag: "🇳🇴", priority: 1, source: "flag" }; - if (n.includes("🇵🇭")) return { iso3: "PHL", flag: "🇵🇭", priority: 1, source: "flag" }; - if (n.includes("🇵🇱")) return { iso3: "POL", flag: "🇵🇱", priority: 1, source: "flag" }; - if (n.includes("🇵🇹")) return { iso3: "PRT", flag: "🇵🇹", priority: 1, source: "flag" }; - if (n.includes("🇷🇴")) return { iso3: "ROU", flag: "🇷🇴", priority: 1, source: "flag" }; - if (n.includes("🇷🇺")) return { iso3: "RUS", flag: "🇷🇺", priority: 1, source: "flag" }; - if (n.includes("🇸🇪")) return { iso3: "SWE", flag: "🇸🇪", priority: 1, source: "flag" }; - if (n.includes("🇸🇬")) return { iso3: "SGP", flag: "🇸🇬", priority: 1, source: "flag" }; - if (n.includes("🇹🇭")) return { iso3: "THA", flag: "🇹🇭", priority: 1, source: "flag" }; - if (n.includes("🇹🇷")) return { iso3: "TUR", flag: "🇹🇷", priority: 1, source: "flag" }; - if (n.includes("🇹🇼")) return { iso3: "TWN", flag: "🇹🇼", priority: 1, source: "flag" }; - if (n.includes("🇺🇸")) return { iso3: "USA", flag: "🇺🇸", priority: 1, source: "flag" }; - if (n.includes("🇻🇳")) return { iso3: "VNM", flag: "🇻🇳", priority: 1, 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: "AUS", flag: "🇦🇺", priority: 4, 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: "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" }; + if (n.includes("🇪🇬")) return { iso3: "EGY", flag: "🇪🇬", priority: 15, source: "flag" }; + if (n.includes("🇪🇸")) return { iso3: "ESP", flag: "🇪🇸", priority: 16, source: "flag" }; + if (n.includes("🇫🇮")) return { iso3: "FIN", flag: "🇫🇮", priority: 17, source: "flag" }; + 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: "HKG", flag: "🇭🇰", priority: 21, 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: "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" }; + if (n.includes("🇱🇹")) return { iso3: "LTU", flag: "🇱🇹", priority: 29, source: "flag" }; + if (n.includes("🇱🇻")) return { iso3: "LVA", flag: "🇱🇻", priority: 30, source: "flag" }; + if (n.includes("🇲🇩")) return { iso3: "MDA", flag: "🇲🇩", priority: 31, source: "flag" }; + if (n.includes("🇲🇾")) return { iso3: "MYS", flag: "🇲🇾", priority: 32, source: "flag" }; + if (n.includes("🇳🇬")) return { iso3: "NGA", flag: "🇳🇬", priority: 33, source: "flag" }; + 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: "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: "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: "USA", flag: "🇺🇸", priority: 46, source: "flag" }; + if (n.includes("🇻🇳")) return { iso3: "VNM", flag: "🇻🇳", priority: 47, source: "flag" }; const sorted = COUNTRY_RULES.slice().sort((a, b) => a.priority - b.priority); for (const c of sorted) {