diff --git a/config-sub-converter/scripts/external-proxies-sanitizer.js b/config-sub-converter/scripts/external-proxies-sanitizer.js index c961463..25974f7 100644 --- a/config-sub-converter/scripts/external-proxies-sanitizer.js +++ b/config-sub-converter/scripts/external-proxies-sanitizer.js @@ -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" }; diff --git a/init-scripts/openrc/mihomo b/init-scripts/openrc/mihomo index 864e785..0870dbe 100644 --- a/init-scripts/openrc/mihomo +++ b/init-scripts/openrc/mihomo @@ -16,4 +16,10 @@ depend() { need net 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 } \ No newline at end of file