mirror of
https://github.com/itdoginfo/podkop.git
synced 2025-12-06 11:36:50 +03:00
Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d09fdc0b95 | ||
|
|
835cd85970 | ||
|
|
8a3b41ec9c | ||
|
|
10d7617739 | ||
|
|
68010ed5f7 | ||
|
|
557e3666eb | ||
|
|
01bff8ccfb | ||
|
|
675a6af89c | ||
|
|
f1a6ff3469 | ||
|
|
d4b3377d68 | ||
|
|
d2ef640d76 | ||
|
|
47457f2c27 | ||
|
|
8a29e176f2 | ||
|
|
9653310208 | ||
|
|
3540610c78 | ||
|
|
fb54d62a7f | ||
|
|
288b8d4cc2 | ||
|
|
e014396ae2 | ||
|
|
694e4ca35a | ||
|
|
788c539e16 | ||
|
|
743cba8936 | ||
|
|
d1d703764c | ||
|
|
2efd415305 | ||
|
|
407b19b3ed |
@@ -45,21 +45,21 @@
|
||||
"call": "Applicable for SOCKS and Shadowsocks proxy",
|
||||
"key": "Applicable for SOCKS and Shadowsocks proxy",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:111"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:175"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "At least one valid domain must be specified. Comments-only content is not allowed.",
|
||||
"key": "At least one valid domain must be specified. Comments-only content is not allowed.",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:356"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:420"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "At least one valid subnet or IP must be specified. Comments-only content is not allowed.",
|
||||
"key": "At least one valid subnet or IP must be specified. Comments-only content is not allowed.",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:437"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:501"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -117,6 +117,7 @@
|
||||
"places": [
|
||||
"src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:27",
|
||||
"src/podkop/tabs/diagnostic/checks/runNftCheck.ts:28",
|
||||
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:27",
|
||||
"src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:25"
|
||||
]
|
||||
},
|
||||
@@ -127,6 +128,7 @@
|
||||
"src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:15",
|
||||
"src/podkop/tabs/diagnostic/checks/runFakeIPCheck.ts:15",
|
||||
"src/podkop/tabs/diagnostic/checks/runNftCheck.ts:13",
|
||||
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:15",
|
||||
"src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:13"
|
||||
]
|
||||
},
|
||||
@@ -169,7 +171,7 @@
|
||||
"call": "Community Lists",
|
||||
"key": "Community Lists",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:211"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:275"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -288,8 +290,8 @@
|
||||
"call": "Disabled",
|
||||
"key": "Disabled",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:302",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:382"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:366",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:446"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -303,7 +305,7 @@
|
||||
"call": "DNS over HTTPS (DoH)",
|
||||
"key": "DNS over HTTPS (DoH)",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:179",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:243",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:15"
|
||||
]
|
||||
},
|
||||
@@ -311,7 +313,7 @@
|
||||
"call": "DNS over TLS (DoT)",
|
||||
"key": "DNS over TLS (DoT)",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:180",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:244",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:16"
|
||||
]
|
||||
},
|
||||
@@ -319,7 +321,7 @@
|
||||
"call": "DNS Protocol Type",
|
||||
"key": "DNS Protocol Type",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:176",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:240",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:12"
|
||||
]
|
||||
},
|
||||
@@ -334,7 +336,7 @@
|
||||
"call": "DNS Server",
|
||||
"key": "DNS Server",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:189",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:253",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:24"
|
||||
]
|
||||
},
|
||||
@@ -356,7 +358,7 @@
|
||||
"call": "Domain Resolver",
|
||||
"key": "Domain Resolver",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:166"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:230"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -395,17 +397,11 @@
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:278"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Downloading all lists via main Proxy/VPN",
|
||||
"key": "Downloading all lists via main Proxy/VPN",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:270"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Downloading all lists via specific Proxy/VPN",
|
||||
"key": "Downloading all lists via specific Proxy/VPN",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:270",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:279"
|
||||
]
|
||||
},
|
||||
@@ -413,8 +409,8 @@
|
||||
"call": "Dynamic List",
|
||||
"key": "Dynamic List",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:303",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:383"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:367",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:447"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -428,14 +424,14 @@
|
||||
"call": "Enable built-in DNS resolver for domains handled by this section",
|
||||
"key": "Enable built-in DNS resolver for domains handled by this section",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:167"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:231"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Enable Mixed Proxy",
|
||||
"key": "Enable Mixed Proxy",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:575"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:639"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -449,7 +445,7 @@
|
||||
"call": "Enable the mixed proxy, allowing this section to route traffic through both HTTP and SOCKS proxies",
|
||||
"key": "Enable the mixed proxy, allowing this section to route traffic through both HTTP and SOCKS proxies",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:576"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:640"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -470,21 +466,49 @@
|
||||
"call": "Enter domain names separated by commas, spaces, or newlines. You can add comments using //",
|
||||
"key": "Enter domain names separated by commas, spaces, or newlines. You can add comments using //",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:338"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:402"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Enter domain names without protocols, e.g. example.com or sub.example.com",
|
||||
"key": "Enter domain names without protocols, e.g. example.com or sub.example.com",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:312"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:376"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Enter subnets in CIDR notation (e.g. 103.21.244.0/22) or single IP addresses",
|
||||
"key": "Enter subnets in CIDR notation (e.g. 103.21.244.0/22) or single IP addresses",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:392"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:456"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Every 1 minute",
|
||||
"key": "Every 1 minute",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:114"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Every 3 minutes",
|
||||
"key": "Every 3 minutes",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:115"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Every 30 seconds",
|
||||
"key": "Every 30 seconds",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:113"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Every 5 minutes",
|
||||
"key": "Every 5 minutes",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:116"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -512,26 +536,27 @@
|
||||
"call": "Failed to execute!",
|
||||
"key": "Failed to execute!",
|
||||
"places": [
|
||||
"src/podkop/tabs/diagnostic/initController.ts:226",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:230",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:260",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:264",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:298",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:302"
|
||||
"src/podkop/tabs/diagnostic/initController.ts:227",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:231",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:261",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:265",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:299",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:303"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Fastest",
|
||||
"key": "Fastest",
|
||||
"places": [
|
||||
"src/podkop/methods/custom/getDashboardSections.ts:117"
|
||||
"src/podkop/methods/custom/getDashboardSections.ts:117",
|
||||
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:59"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Fully Routed IPs",
|
||||
"key": "Fully Routed IPs",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:550"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:614"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -545,7 +570,7 @@
|
||||
"call": "Global check",
|
||||
"key": "Global check",
|
||||
"places": [
|
||||
"src/podkop/tabs/diagnostic/initController.ts:221"
|
||||
"src/podkop/tabs/diagnostic/initController.ts:222"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -609,7 +634,7 @@
|
||||
"call": "Invalid JSON format",
|
||||
"key": "Invalid JSON format",
|
||||
"places": [
|
||||
"src/validators/validateOutboundJson.ts:19"
|
||||
"src/validators/validateOutboundJson.ts:9"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -777,7 +802,8 @@
|
||||
"call": "Invalid URL format",
|
||||
"key": "Invalid URL format",
|
||||
"places": [
|
||||
"src/validators/validateUrl.ts:18"
|
||||
"src/validators/validateUrl.ts:8",
|
||||
"src/validators/validateUrl.ts:31"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -805,7 +831,7 @@
|
||||
"call": "Latest",
|
||||
"key": "Latest",
|
||||
"places": [
|
||||
"src/podkop/tabs/diagnostic/initController.ts:452"
|
||||
"src/podkop/tabs/diagnostic/initController.ts:453"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -819,14 +845,14 @@
|
||||
"call": "Local Domain Lists",
|
||||
"key": "Local Domain Lists",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:458"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:522"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Local Subnet Lists",
|
||||
"key": "Local Subnet Lists",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:481"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:545"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -847,7 +873,7 @@
|
||||
"call": "Mixed Proxy Port",
|
||||
"key": "Mixed Proxy Port",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:586"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:650"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -857,11 +883,18 @@
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:198"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Must be a number in the range of 50 - 1000",
|
||||
"key": "Must be a number in the range of 50 - 1000",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:140"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Network Interface",
|
||||
"key": "Network Interface",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:120"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:184"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -878,6 +911,15 @@
|
||||
"src/podkop/tabs/diagnostic/partials/renderCheckSection.ts:189"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Not responding",
|
||||
"key": "Not responding",
|
||||
"places": [
|
||||
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:75",
|
||||
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:81",
|
||||
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:100"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Not running",
|
||||
"key": "Not running",
|
||||
@@ -885,7 +927,8 @@
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:55",
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:63",
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:71",
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:79"
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:79",
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:87"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -909,18 +952,11 @@
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:64"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Outbound JSON must contain at least \"type\", \"server\" and \"server_port\" fields",
|
||||
"key": "Outbound JSON must contain at least \"type\", \"server\" and \"server_port\" fields",
|
||||
"places": [
|
||||
"src/validators/validateOutboundJson.ts:11"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Outdated",
|
||||
"key": "Outdated",
|
||||
"places": [
|
||||
"src/podkop/tabs/diagnostic/initController.ts:442"
|
||||
"src/podkop/tabs/diagnostic/initController.ts:443"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -962,10 +998,11 @@
|
||||
"call": "Pending",
|
||||
"key": "Pending",
|
||||
"places": [
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:95",
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:103",
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:111",
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:119"
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:119",
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:127",
|
||||
"src/podkop/tabs/diagnostic/diagnostic.store.ts:135"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1014,21 +1051,21 @@
|
||||
"call": "Regional options cannot be used together",
|
||||
"key": "Regional options cannot be used together",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:245"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:309"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Remote Domain Lists",
|
||||
"key": "Remote Domain Lists",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:504"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:568"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Remote Subnet Lists",
|
||||
"key": "Remote Subnet Lists",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:527"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:591"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1112,7 +1149,7 @@
|
||||
"call": "Russia inside restrictions",
|
||||
"key": "Russia inside restrictions",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:264"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:328"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1126,7 +1163,7 @@
|
||||
"call": "Select a predefined list for routing",
|
||||
"key": "Select a predefined list for routing",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:212"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:276"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1161,14 +1198,14 @@
|
||||
"call": "Select network interface for VPN connection",
|
||||
"key": "Select network interface for VPN connection",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:121"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:185"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Select or enter DNS server address",
|
||||
"key": "Select or enter DNS server address",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:190",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:254",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:25"
|
||||
]
|
||||
},
|
||||
@@ -1190,21 +1227,21 @@
|
||||
"call": "Select the DNS protocol type for the domain resolver",
|
||||
"key": "Select the DNS protocol type for the domain resolver",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:177"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:241"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Select the list type for adding custom domains",
|
||||
"key": "Select the list type for adding custom domains",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:300"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:364"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Select the list type for adding custom subnets",
|
||||
"key": "Select the list type for adding custom subnets",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:380"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:444"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1246,7 +1283,7 @@
|
||||
"call": "Show sing-box config",
|
||||
"key": "Show sing-box config",
|
||||
"places": [
|
||||
"src/podkop/tabs/diagnostic/initController.ts:289",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:290",
|
||||
"src/podkop/tabs/diagnostic/partials/renderAvailableActions.ts:116"
|
||||
]
|
||||
},
|
||||
@@ -1293,8 +1330,8 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Sing-box version >= 1.12.4",
|
||||
"key": "Sing-box version >= 1.12.4",
|
||||
"call": "Sing-box version is compatible (newer than 1.12.4)",
|
||||
"key": "Sing-box version is compatible (newer than 1.12.4)",
|
||||
"places": [
|
||||
"src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:67"
|
||||
]
|
||||
@@ -1317,29 +1354,29 @@
|
||||
"call": "Specify local IP addresses or subnets whose traffic will always be routed through the configured route",
|
||||
"key": "Specify local IP addresses or subnets whose traffic will always be routed through the configured route",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:551"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:615"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Specify remote URLs to download and use domain lists",
|
||||
"key": "Specify remote URLs to download and use domain lists",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:505"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:569"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Specify remote URLs to download and use subnet lists",
|
||||
"key": "Specify remote URLs to download and use subnet lists",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:528"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:592"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Specify the path to the list file located on the router filesystem",
|
||||
"key": "Specify the path to the list file located on the router filesystem",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:459",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:482"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:523",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:546"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1395,14 +1432,14 @@
|
||||
"call": "Text List",
|
||||
"key": "Text List",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:304"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:368"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Text List (comma/space/newline separated)",
|
||||
"key": "Text List (comma/space/newline separated)",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:384"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:448"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1412,6 +1449,27 @@
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:46"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "The interval between connectivity tests",
|
||||
"key": "The interval between connectivity tests",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:111"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "The maximum difference in response times (ms) allowed when comparing servers",
|
||||
"key": "The maximum difference in response times (ms) allowed when comparing servers",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:124"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "The URL used to test server connectivity",
|
||||
"key": "The URL used to test server connectivity",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:147"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Time in seconds for DNS record caching (default: 60)",
|
||||
"key": "Time in seconds for DNS record caching (default: 60)",
|
||||
@@ -1458,7 +1516,7 @@
|
||||
"call": "UDP (Unprotected DNS)",
|
||||
"key": "UDP (Unprotected DNS)",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:181",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:245",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:17"
|
||||
]
|
||||
},
|
||||
@@ -1466,20 +1524,20 @@
|
||||
"call": "UDP over TCP",
|
||||
"key": "UDP over TCP",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:110"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:174"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "unknown",
|
||||
"key": "unknown",
|
||||
"places": [
|
||||
"src/podkop/tabs/diagnostic/initController.ts:37",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:38",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:39",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:40",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:41",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:42",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:416"
|
||||
"src/podkop/tabs/diagnostic/initController.ts:43",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:417"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1508,7 +1566,7 @@
|
||||
"call": "URL must use one of the following protocols:",
|
||||
"key": "URL must use one of the following protocols:",
|
||||
"places": [
|
||||
"src/validators/validateUrl.ts:13"
|
||||
"src/validators/validateUrl.ts:17"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1518,6 +1576,13 @@
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:27"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "URLTest Check Interval",
|
||||
"key": "URLTest Check Interval",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:110"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "URLTest Proxy Links",
|
||||
"key": "URLTest Proxy Links",
|
||||
@@ -1525,46 +1590,60 @@
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:87"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "URLTest Testing URL",
|
||||
"key": "URLTest Testing URL",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:146"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "URLTest Tolerance",
|
||||
"key": "URLTest Tolerance",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:123"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "User Domain List Type",
|
||||
"key": "User Domain List Type",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:299"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:363"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "User Domains",
|
||||
"key": "User Domains",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:311"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:375"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "User Domains List",
|
||||
"key": "User Domains List",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:337"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:401"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "User Subnet List Type",
|
||||
"key": "User Subnet List Type",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:379"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:443"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "User Subnets",
|
||||
"key": "User Subnets",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:391"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:455"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "User Subnets List",
|
||||
"key": "User Subnets List",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:417"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:481"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1576,13 +1655,13 @@
|
||||
"src/validators/validateDomain.ts:13",
|
||||
"src/validators/validateDomain.ts:30",
|
||||
"src/validators/validateIp.ts:8",
|
||||
"src/validators/validateOutboundJson.ts:17",
|
||||
"src/validators/validateOutboundJson.ts:7",
|
||||
"src/validators/validatePath.ts:16",
|
||||
"src/validators/validateShadowsocksUrl.ts:95",
|
||||
"src/validators/validateSocksUrl.ts:80",
|
||||
"src/validators/validateSubnet.ts:38",
|
||||
"src/validators/validateTrojanUrl.ts:59",
|
||||
"src/validators/validateUrl.ts:16",
|
||||
"src/validators/validateUrl.ts:28",
|
||||
"src/validators/validateVlessUrl.ts:108"
|
||||
]
|
||||
},
|
||||
@@ -1590,15 +1669,15 @@
|
||||
"call": "Validation errors:",
|
||||
"key": "Validation errors:",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:370",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:449"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:434",
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:513"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "View logs",
|
||||
"key": "View logs",
|
||||
"places": [
|
||||
"src/podkop/tabs/diagnostic/initController.ts:255",
|
||||
"src/podkop/tabs/diagnostic/initController.ts:256",
|
||||
"src/podkop/tabs/diagnostic/partials/renderAvailableActions.ts:107"
|
||||
]
|
||||
},
|
||||
@@ -1613,14 +1692,14 @@
|
||||
"call": "Warning: %s cannot be used together with %s. Previous selections have been removed.",
|
||||
"key": "Warning: %s cannot be used together with %s. Previous selections have been removed.",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:247"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:311"
|
||||
]
|
||||
},
|
||||
{
|
||||
"call": "Warning: Russia inside can only be used with %s. %s already in Russia inside and have been removed from selection.",
|
||||
"key": "Warning: Russia inside can only be used with %s. %s already in Russia inside and have been removed from selection.",
|
||||
"places": [
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:266"
|
||||
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:330"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PODKOP\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-23 17:43+0300\n"
|
||||
"PO-Revision-Date: 2025-10-23 17:43+0300\n"
|
||||
"POT-Creation-Date: 2025-10-27 11:15+0200\n"
|
||||
"PO-Revision-Date: 2025-10-27 11:15+0200\n"
|
||||
"Last-Translator: divocat <divocatt@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
@@ -40,15 +40,15 @@ msgstr ""
|
||||
msgid "Additional marking rules found"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:111
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:175
|
||||
msgid "Applicable for SOCKS and Shadowsocks proxy"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:356
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:420
|
||||
msgid "At least one valid domain must be specified. Comments-only content is not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:437
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:501
|
||||
msgid "At least one valid subnet or IP must be specified. Comments-only content is not allowed."
|
||||
msgstr ""
|
||||
|
||||
@@ -82,6 +82,7 @@ msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:27
|
||||
#: src/podkop/tabs/diagnostic/checks/runNftCheck.ts:28
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:27
|
||||
#: src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:25
|
||||
msgid "Cannot receive checks result"
|
||||
msgstr ""
|
||||
@@ -89,6 +90,7 @@ msgstr ""
|
||||
#: src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:15
|
||||
#: src/podkop/tabs/diagnostic/checks/runFakeIPCheck.ts:15
|
||||
#: src/podkop/tabs/diagnostic/checks/runNftCheck.ts:13
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:15
|
||||
#: src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:13
|
||||
msgid "Checking, please wait"
|
||||
msgstr ""
|
||||
@@ -113,7 +115,7 @@ msgstr ""
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:211
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:275
|
||||
msgid "Community Lists"
|
||||
msgstr ""
|
||||
|
||||
@@ -181,8 +183,8 @@ msgstr ""
|
||||
msgid "Disable the QUIC protocol to improve compatibility or fix issues with video streaming"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:302
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:382
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:366
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:446
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
@@ -190,17 +192,17 @@ msgstr ""
|
||||
msgid "DNS on router"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:179
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:243
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:15
|
||||
msgid "DNS over HTTPS (DoH)"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:180
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:244
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:16
|
||||
msgid "DNS over TLS (DoT)"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:176
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:240
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:12
|
||||
msgid "DNS Protocol Type"
|
||||
msgstr ""
|
||||
@@ -209,7 +211,7 @@ msgstr ""
|
||||
msgid "DNS Rewrite TTL"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:189
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:253
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:24
|
||||
msgid "DNS Server"
|
||||
msgstr ""
|
||||
@@ -222,7 +224,7 @@ msgstr ""
|
||||
msgid "Do not panic, everything can be fixed, just..."
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:166
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:230
|
||||
msgid "Domain Resolver"
|
||||
msgstr ""
|
||||
|
||||
@@ -248,15 +250,12 @@ msgid "Download Lists via specific proxy section"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:270
|
||||
msgid "Downloading all lists via main Proxy/VPN"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:279
|
||||
msgid "Downloading all lists via specific Proxy/VPN"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:303
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:383
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:367
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:447
|
||||
msgid "Dynamic List"
|
||||
msgstr ""
|
||||
|
||||
@@ -264,11 +263,11 @@ msgstr ""
|
||||
msgid "Enable autostart"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:167
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:231
|
||||
msgid "Enable built-in DNS resolver for domains handled by this section"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:575
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:639
|
||||
msgid "Enable Mixed Proxy"
|
||||
msgstr ""
|
||||
|
||||
@@ -276,7 +275,7 @@ msgstr ""
|
||||
msgid "Enable Output Network Interface"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:576
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:640
|
||||
msgid "Enable the mixed proxy, allowing this section to route traffic through both HTTP and SOCKS proxies"
|
||||
msgstr ""
|
||||
|
||||
@@ -288,18 +287,34 @@ msgstr ""
|
||||
msgid "Enter complete outbound configuration in JSON format"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:338
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:402
|
||||
msgid "Enter domain names separated by commas, spaces, or newlines. You can add comments using //"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:312
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:376
|
||||
msgid "Enter domain names without protocols, e.g. example.com or sub.example.com"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:392
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:456
|
||||
msgid "Enter subnets in CIDR notation (e.g. 103.21.244.0/22) or single IP addresses"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:114
|
||||
msgid "Every 1 minute"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:115
|
||||
msgid "Every 3 minutes"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:113
|
||||
msgid "Every 30 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:116
|
||||
msgid "Every 5 minutes"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:365
|
||||
msgid "Exclude NTP"
|
||||
msgstr ""
|
||||
@@ -312,20 +327,21 @@ msgstr ""
|
||||
msgid "Failed to copy!"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:226
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:230
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:260
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:264
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:298
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:302
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:227
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:231
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:261
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:265
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:299
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:303
|
||||
msgid "Failed to execute!"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/methods/custom/getDashboardSections.ts:117
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:59
|
||||
msgid "Fastest"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:550
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:614
|
||||
msgid "Fully Routed IPs"
|
||||
msgstr ""
|
||||
|
||||
@@ -333,7 +349,7 @@ msgstr ""
|
||||
msgid "Get global check"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:221
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:222
|
||||
msgid "Global check"
|
||||
msgstr ""
|
||||
|
||||
@@ -370,7 +386,7 @@ msgstr ""
|
||||
msgid "Invalid IP address"
|
||||
msgstr ""
|
||||
|
||||
#: src/validators/validateOutboundJson.ts:19
|
||||
#: src/validators/validateOutboundJson.ts:9
|
||||
msgid "Invalid JSON format"
|
||||
msgstr ""
|
||||
|
||||
@@ -466,7 +482,8 @@ msgstr ""
|
||||
msgid "Invalid Trojan URL: parsing failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/validators/validateUrl.ts:18
|
||||
#: src/validators/validateUrl.ts:8
|
||||
#: src/validators/validateUrl.ts:31
|
||||
msgid "Invalid URL format"
|
||||
msgstr ""
|
||||
|
||||
@@ -482,7 +499,7 @@ msgstr ""
|
||||
msgid "Issues detected"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:452
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:453
|
||||
msgid "Latest"
|
||||
msgstr ""
|
||||
|
||||
@@ -490,11 +507,11 @@ msgstr ""
|
||||
msgid "List Update Frequency"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:458
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:522
|
||||
msgid "Local Domain Lists"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:481
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:545
|
||||
msgid "Local Subnet Lists"
|
||||
msgstr ""
|
||||
|
||||
@@ -506,7 +523,7 @@ msgstr ""
|
||||
msgid "Memory Usage"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:586
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:650
|
||||
msgid "Mixed Proxy Port"
|
||||
msgstr ""
|
||||
|
||||
@@ -514,7 +531,11 @@ msgstr ""
|
||||
msgid "Monitored Interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:120
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:140
|
||||
msgid "Must be a number in the range of 50 - 1000"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:184
|
||||
msgid "Network Interface"
|
||||
msgstr ""
|
||||
|
||||
@@ -526,10 +547,17 @@ msgstr ""
|
||||
msgid "Not implement yet"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:75
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:81
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:100
|
||||
msgid "Not responding"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:55
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:63
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:71
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:79
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:87
|
||||
msgid "Not running"
|
||||
msgstr ""
|
||||
|
||||
@@ -545,11 +573,7 @@ msgstr ""
|
||||
msgid "Outbound Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: src/validators/validateOutboundJson.ts:11
|
||||
msgid "Outbound JSON must contain at least \"type\", \"server\" and \"server_port\" fields"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:442
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:443
|
||||
msgid "Outdated"
|
||||
msgstr ""
|
||||
|
||||
@@ -573,10 +597,11 @@ msgstr ""
|
||||
msgid "Path must end with cache.db"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:95
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:103
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:111
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:119
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:127
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:135
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
|
||||
@@ -604,15 +629,15 @@ msgstr ""
|
||||
msgid "Proxy traffic is routed via FakeIP"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:245
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:309
|
||||
msgid "Regional options cannot be used together"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:504
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:568
|
||||
msgid "Remote Domain Lists"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:527
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:591
|
||||
msgid "Remote Subnet Lists"
|
||||
msgstr ""
|
||||
|
||||
@@ -660,7 +685,7 @@ msgstr ""
|
||||
msgid "Run Diagnostic"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:264
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:328
|
||||
msgid "Russia inside restrictions"
|
||||
msgstr ""
|
||||
|
||||
@@ -668,7 +693,7 @@ msgstr ""
|
||||
msgid "Sections"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:212
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:276
|
||||
msgid "Select a predefined list for routing"
|
||||
msgstr ""
|
||||
|
||||
@@ -688,11 +713,11 @@ msgstr ""
|
||||
msgid "Select how to configure the proxy"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:121
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:185
|
||||
msgid "Select network interface for VPN connection"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:190
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:254
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:25
|
||||
msgid "Select or enter DNS server address"
|
||||
msgstr ""
|
||||
@@ -705,15 +730,15 @@ msgstr ""
|
||||
msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:177
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:241
|
||||
msgid "Select the DNS protocol type for the domain resolver"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:300
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:364
|
||||
msgid "Select the list type for adding custom domains"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:380
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:444
|
||||
msgid "Select the list type for adding custom subnets"
|
||||
msgstr ""
|
||||
|
||||
@@ -737,7 +762,7 @@ msgstr ""
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:289
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:290
|
||||
#: src/podkop/tabs/diagnostic/partials/renderAvailableActions.ts:116
|
||||
msgid "Show sing-box config"
|
||||
msgstr ""
|
||||
@@ -767,7 +792,7 @@ msgid "Sing-box service exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:67
|
||||
msgid "Sing-box version >= 1.12.4"
|
||||
msgid "Sing-box version is compatible (newer than 1.12.4)"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:89
|
||||
@@ -778,20 +803,20 @@ msgstr ""
|
||||
msgid "Specify a local IP address to be excluded from routing"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:551
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:615
|
||||
msgid "Specify local IP addresses or subnets whose traffic will always be routed through the configured route"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:505
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:569
|
||||
msgid "Specify remote URLs to download and use domain lists"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:528
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:592
|
||||
msgid "Specify remote URLs to download and use subnet lists"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:459
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:482
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:523
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:546
|
||||
msgid "Specify the path to the list file located on the router filesystem"
|
||||
msgstr ""
|
||||
|
||||
@@ -823,11 +848,11 @@ msgstr ""
|
||||
msgid "Test latency"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:304
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:368
|
||||
msgid "Text List"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:384
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:448
|
||||
msgid "Text List (comma/space/newline separated)"
|
||||
msgstr ""
|
||||
|
||||
@@ -835,6 +860,18 @@ msgstr ""
|
||||
msgid "The DNS server used to look up the IP address of an upstream DNS server"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:111
|
||||
msgid "The interval between connectivity tests"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:124
|
||||
msgid "The maximum difference in response times (ms) allowed when comparing servers"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:147
|
||||
msgid "The URL used to test server connectivity"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:69
|
||||
msgid "Time in seconds for DNS record caching (default: 60)"
|
||||
msgstr ""
|
||||
@@ -859,22 +896,22 @@ msgstr ""
|
||||
msgid "TTL value cannot be empty"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:181
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:245
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:17
|
||||
msgid "UDP (Unprotected DNS)"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:110
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:174
|
||||
msgid "UDP over TCP"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:37
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:38
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:39
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:40
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:41
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:42
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:416
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:43
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:417
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
@@ -891,7 +928,7 @@ msgstr ""
|
||||
msgid "URL must start with vless://, ss://, trojan://, or socks4/5://"
|
||||
msgstr ""
|
||||
|
||||
#: src/validators/validateUrl.ts:13
|
||||
#: src/validators/validateUrl.ts:17
|
||||
msgid "URL must use one of the following protocols:"
|
||||
msgstr ""
|
||||
|
||||
@@ -899,31 +936,43 @@ msgstr ""
|
||||
msgid "URLTest"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:110
|
||||
msgid "URLTest Check Interval"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:87
|
||||
msgid "URLTest Proxy Links"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:299
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:146
|
||||
msgid "URLTest Testing URL"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:123
|
||||
msgid "URLTest Tolerance"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:363
|
||||
msgid "User Domain List Type"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:311
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:375
|
||||
msgid "User Domains"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:337
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:401
|
||||
msgid "User Domains List"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:379
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:443
|
||||
msgid "User Subnet List Type"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:391
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:455
|
||||
msgid "User Subnets"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:417
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:481
|
||||
msgid "User Subnets List"
|
||||
msgstr ""
|
||||
|
||||
@@ -932,23 +981,23 @@ msgstr ""
|
||||
#: src/validators/validateDomain.ts:13
|
||||
#: src/validators/validateDomain.ts:30
|
||||
#: src/validators/validateIp.ts:8
|
||||
#: src/validators/validateOutboundJson.ts:17
|
||||
#: src/validators/validateOutboundJson.ts:7
|
||||
#: src/validators/validatePath.ts:16
|
||||
#: src/validators/validateShadowsocksUrl.ts:95
|
||||
#: src/validators/validateSocksUrl.ts:80
|
||||
#: src/validators/validateSubnet.ts:38
|
||||
#: src/validators/validateTrojanUrl.ts:59
|
||||
#: src/validators/validateUrl.ts:16
|
||||
#: src/validators/validateUrl.ts:28
|
||||
#: src/validators/validateVlessUrl.ts:108
|
||||
msgid "Valid"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:370
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:449
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:434
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:513
|
||||
msgid "Validation errors:"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:255
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:256
|
||||
#: src/podkop/tabs/diagnostic/partials/renderAvailableActions.ts:107
|
||||
msgid "View logs"
|
||||
msgstr ""
|
||||
@@ -957,11 +1006,11 @@ msgstr ""
|
||||
msgid "Visit Wiki"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:247
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:311
|
||||
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:266
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:330
|
||||
msgid "Warning: Russia inside can only be used with %s. %s already in Russia inside and have been removed from selection."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PODKOP\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-23 20:43+0300\n"
|
||||
"PO-Revision-Date: 2025-10-23 20:43+0300\n"
|
||||
"POT-Creation-Date: 2025-10-27 13:15+0200\n"
|
||||
"PO-Revision-Date: 2025-10-27 13:15+0200\n"
|
||||
"Last-Translator: divocat\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: ru\n"
|
||||
@@ -182,9 +182,6 @@ msgstr "Скачивать списки через Proxy/VPN"
|
||||
msgid "Download Lists via specific proxy section"
|
||||
msgstr "Скачивать списки через выбранную секцию"
|
||||
|
||||
msgid "Downloading all lists via main Proxy/VPN"
|
||||
msgstr "Загрузка всех списков через основной прокси/VPN"
|
||||
|
||||
msgid "Downloading all lists via specific Proxy/VPN"
|
||||
msgstr "Загрузка всех списков через указанный прокси/VPN"
|
||||
|
||||
@@ -221,6 +218,18 @@ msgstr "Введите доменные имена без протоколов,
|
||||
msgid "Enter subnets in CIDR notation (e.g. 103.21.244.0/22) or single IP addresses"
|
||||
msgstr "Введите подсети в нотации CIDR (например, 103.21.244.0/22) или отдельные IP-адреса"
|
||||
|
||||
msgid "Every 1 minute"
|
||||
msgstr "Каждую минуту"
|
||||
|
||||
msgid "Every 3 minutes"
|
||||
msgstr "Каждые 3 минуты"
|
||||
|
||||
msgid "Every 30 seconds"
|
||||
msgstr "Каждые 30 секунд"
|
||||
|
||||
msgid "Every 5 minutes"
|
||||
msgstr "Каждые 5 минут"
|
||||
|
||||
msgid "Exclude NTP"
|
||||
msgstr "Исключить NTP"
|
||||
|
||||
@@ -377,6 +386,9 @@ msgstr "Порт смешанного прокси"
|
||||
msgid "Monitored Interfaces"
|
||||
msgstr "Наблюдаемые интерфейсы"
|
||||
|
||||
msgid "Must be a number in the range of 50 - 1000"
|
||||
msgstr "Должно быть числом от 50 до 1000"
|
||||
|
||||
msgid "Network Interface"
|
||||
msgstr "Сетевой интерфейс"
|
||||
|
||||
@@ -386,6 +398,9 @@ msgstr "Другие правила маркировки не найдены"
|
||||
msgid "Not implement yet"
|
||||
msgstr "Ещё не реализовано"
|
||||
|
||||
msgid "Not responding"
|
||||
msgstr "Не отвечает"
|
||||
|
||||
msgid "Not running"
|
||||
msgstr "Не запущено"
|
||||
|
||||
@@ -398,9 +413,6 @@ msgstr "Конфигурация Outbound"
|
||||
msgid "Outbound Configuration"
|
||||
msgstr "Конфигурация исходящего соединения"
|
||||
|
||||
msgid "Outbound JSON must contain at least \"type\", \"server\" and \"server_port\" fields"
|
||||
msgstr "JSON должен содержать поля \"type\", \"server\" и \"server_port\""
|
||||
|
||||
msgid "Outdated"
|
||||
msgstr "Устаревшая"
|
||||
|
||||
@@ -560,8 +572,8 @@ msgstr "Процесс sing-box запущен"
|
||||
msgid "Sing-box service exist"
|
||||
msgstr "Сервис sing-box существует"
|
||||
|
||||
msgid "Sing-box version >= 1.12.4"
|
||||
msgstr "Версия sing-box >= 1.12.4"
|
||||
msgid "Sing-box version is compatible (newer than 1.12.4)"
|
||||
msgstr "Версия Sing-box совместима (новее 1.12.4)"
|
||||
|
||||
msgid "Source Network Interface"
|
||||
msgstr "Сетевой интерфейс источника"
|
||||
@@ -611,6 +623,15 @@ msgstr "Текстовый список (через запятую, пробел
|
||||
msgid "The DNS server used to look up the IP address of an upstream DNS server"
|
||||
msgstr "DNS-сервер, используемый для поиска IP-адреса вышестоящего DNS-сервера"
|
||||
|
||||
msgid "The interval between connectivity tests"
|
||||
msgstr "Интервал между тестами подключения"
|
||||
|
||||
msgid "The maximum difference in response times (ms) allowed when comparing servers"
|
||||
msgstr "Максимально допустимая разница во времени отклика (мс) при сравнении серверов"
|
||||
|
||||
msgid "The URL used to test server connectivity"
|
||||
msgstr "URL-адрес, используемый для проверки подключения к серверу"
|
||||
|
||||
msgid "Time in seconds for DNS record caching (default: 60)"
|
||||
msgstr "Время в секундах для кэширования DNS записей (по умолчанию: 60)"
|
||||
|
||||
@@ -653,9 +674,18 @@ msgstr "URL должен использовать один из следующи
|
||||
msgid "URLTest"
|
||||
msgstr "URLTest"
|
||||
|
||||
msgid "URLTest Check Interval"
|
||||
msgstr "Интервал проверки URLTest"
|
||||
|
||||
msgid "URLTest Proxy Links"
|
||||
msgstr "Ссылки прокси для URLTest"
|
||||
|
||||
msgid "URLTest Testing URL"
|
||||
msgstr "URLTest ссылка для проверки"
|
||||
|
||||
msgid "URLTest Tolerance"
|
||||
msgstr "URLTest допустимое отклонение"
|
||||
|
||||
msgid "User Domain List Type"
|
||||
msgstr "Тип пользовательского списка доменов"
|
||||
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
'require uci';
|
||||
'require ui';
|
||||
|
||||
if (typeof structuredClone !== 'function')
|
||||
globalThis.structuredClone = (obj) => JSON.parse(JSON.stringify(obj));
|
||||
|
||||
export * from './validators';
|
||||
export * from './helpers';
|
||||
export * from './podkop';
|
||||
|
||||
@@ -29,15 +29,15 @@ export const PodkopShellMethods = {
|
||||
Podkop.AvailableClashAPIMethods.GET_PROXIES,
|
||||
]),
|
||||
getClashApiProxyLatency: async (tag: string) =>
|
||||
callBaseMethod<unknown>(Podkop.AvailableMethods.CLASH_API, [
|
||||
Podkop.AvailableClashAPIMethods.GET_PROXY_LATENCY,
|
||||
tag,
|
||||
]),
|
||||
callBaseMethod<Podkop.GetClashApiProxyLatency>(
|
||||
Podkop.AvailableMethods.CLASH_API,
|
||||
[Podkop.AvailableClashAPIMethods.GET_PROXY_LATENCY, tag, '5000'],
|
||||
),
|
||||
getClashApiGroupLatency: async (tag: string) =>
|
||||
callBaseMethod<unknown>(Podkop.AvailableMethods.CLASH_API, [
|
||||
Podkop.AvailableClashAPIMethods.GET_GROUP_LATENCY,
|
||||
tag,
|
||||
]),
|
||||
callBaseMethod<Podkop.GetClashApiGroupLatency>(
|
||||
Podkop.AvailableMethods.CLASH_API,
|
||||
[Podkop.AvailableClashAPIMethods.GET_GROUP_LATENCY, tag, '10000'],
|
||||
),
|
||||
setClashApiGroupProxy: async (group: string, proxy: string) =>
|
||||
callBaseMethod<unknown>(Podkop.AvailableMethods.CLASH_API, [
|
||||
Podkop.AvailableClashAPIMethods.SET_GROUP_PROXY,
|
||||
|
||||
@@ -5,6 +5,7 @@ export enum DIAGNOSTICS_CHECKS {
|
||||
SINGBOX = 'SINGBOX',
|
||||
NFT = 'NFT',
|
||||
FAKEIP = 'FAKEIP',
|
||||
OUTBOUNDS = 'OUTBOUNDS',
|
||||
}
|
||||
|
||||
export const DIAGNOSTICS_CHECKS_MAP: Record<
|
||||
@@ -26,8 +27,13 @@ export const DIAGNOSTICS_CHECKS_MAP: Record<
|
||||
title: getCheckTitle('Nftables'),
|
||||
code: DIAGNOSTICS_CHECKS.NFT,
|
||||
},
|
||||
[DIAGNOSTICS_CHECKS.FAKEIP]: {
|
||||
[DIAGNOSTICS_CHECKS.OUTBOUNDS]: {
|
||||
order: 4,
|
||||
title: getCheckTitle('Outbounds'),
|
||||
code: DIAGNOSTICS_CHECKS.OUTBOUNDS,
|
||||
},
|
||||
[DIAGNOSTICS_CHECKS.FAKEIP]: {
|
||||
order: 5,
|
||||
title: getCheckTitle('FakeIP'),
|
||||
code: DIAGNOSTICS_CHECKS.FAKEIP,
|
||||
},
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
import { DIAGNOSTICS_CHECKS_MAP } from './contstants';
|
||||
import { PodkopShellMethods } from '../../../methods';
|
||||
import { updateCheckStore } from './updateCheckStore';
|
||||
import { getMeta } from '../helpers/getMeta';
|
||||
import { getDashboardSections } from '../../../methods/custom/getDashboardSections';
|
||||
import { IDiagnosticsChecksItem } from '../../../services';
|
||||
|
||||
export async function runSectionsCheck() {
|
||||
const { order, title, code } = DIAGNOSTICS_CHECKS_MAP.OUTBOUNDS;
|
||||
|
||||
updateCheckStore({
|
||||
order,
|
||||
code,
|
||||
title,
|
||||
description: _('Checking, please wait'),
|
||||
state: 'loading',
|
||||
items: [],
|
||||
});
|
||||
|
||||
const sections = await getDashboardSections();
|
||||
|
||||
if (!sections.success) {
|
||||
updateCheckStore({
|
||||
order,
|
||||
code,
|
||||
title,
|
||||
description: _('Cannot receive checks result'),
|
||||
state: 'error',
|
||||
items: [],
|
||||
});
|
||||
|
||||
throw new Error('Sections checks failed');
|
||||
}
|
||||
|
||||
const items = (await Promise.all(
|
||||
sections.data.map(async (section) => {
|
||||
async function getLatency() {
|
||||
if (section.withTagSelect) {
|
||||
const latencyGroup = await PodkopShellMethods.getClashApiGroupLatency(
|
||||
section.code,
|
||||
);
|
||||
|
||||
const selectedOutbound = section.outbounds.find(
|
||||
(item) => item.selected,
|
||||
);
|
||||
|
||||
const isUrlTest = selectedOutbound?.type === 'URLTest';
|
||||
|
||||
const success = latencyGroup.success && !latencyGroup.data.message;
|
||||
|
||||
if (success) {
|
||||
if (isUrlTest) {
|
||||
const latency = Object.values(latencyGroup.data)
|
||||
.map((item) => (item ? `${item}ms` : 'n/a'))
|
||||
.join(' / ');
|
||||
|
||||
return {
|
||||
success: true,
|
||||
latency: `[${_('Fastest')}] ${latency}`,
|
||||
};
|
||||
}
|
||||
|
||||
const selectedProxyDelay =
|
||||
latencyGroup.data?.[selectedOutbound?.code ?? ''];
|
||||
|
||||
if (selectedProxyDelay) {
|
||||
return {
|
||||
success: true,
|
||||
latency: `[${selectedOutbound?.displayName ?? ''}] ${selectedProxyDelay}ms`,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
success: false,
|
||||
latency: `[${selectedOutbound?.displayName ?? ''}] ${_('Not responding')}`,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
success: false,
|
||||
latency: _('Not responding'),
|
||||
};
|
||||
}
|
||||
|
||||
const latencyProxy = await PodkopShellMethods.getClashApiProxyLatency(
|
||||
section.code,
|
||||
);
|
||||
|
||||
const success = latencyProxy.success && !latencyProxy.data.message;
|
||||
|
||||
if (success) {
|
||||
return {
|
||||
success: true,
|
||||
latency: `${latencyProxy.data.delay} ms`,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
success: false,
|
||||
latency: _('Not responding'),
|
||||
};
|
||||
}
|
||||
|
||||
const { latency, success } = await getLatency();
|
||||
|
||||
return {
|
||||
state: success ? 'success' : 'error',
|
||||
key: section.displayName,
|
||||
value: latency,
|
||||
};
|
||||
}),
|
||||
)) as Array<IDiagnosticsChecksItem>;
|
||||
|
||||
const allGood = items.every((item) => item.state === 'success');
|
||||
|
||||
const atLeastOneGood = items.some((item) => item.state === 'success');
|
||||
|
||||
const { state, description } = getMeta({ atLeastOneGood, allGood });
|
||||
|
||||
updateCheckStore({
|
||||
order,
|
||||
code,
|
||||
title,
|
||||
description,
|
||||
state,
|
||||
items,
|
||||
});
|
||||
|
||||
if (!atLeastOneGood) {
|
||||
throw new Error('Sections checks failed');
|
||||
}
|
||||
}
|
||||
@@ -64,7 +64,7 @@ export async function runSingBoxCheck() {
|
||||
},
|
||||
{
|
||||
state: data.sing_box_version_ok ? 'success' : 'error',
|
||||
key: _('Sing-box version >= 1.12.4'),
|
||||
key: _('Sing-box version is compatible (newer than 1.12.4)'),
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
|
||||
@@ -72,6 +72,14 @@ export const initialDiagnosticStore: Pick<
|
||||
items: [],
|
||||
state: 'skipped',
|
||||
},
|
||||
{
|
||||
code: DIAGNOSTICS_CHECKS.OUTBOUNDS,
|
||||
title: DIAGNOSTICS_CHECKS_MAP.OUTBOUNDS.title,
|
||||
order: DIAGNOSTICS_CHECKS_MAP.OUTBOUNDS.order,
|
||||
description: _('Not running'),
|
||||
items: [],
|
||||
state: 'skipped',
|
||||
},
|
||||
{
|
||||
code: DIAGNOSTICS_CHECKS.FAKEIP,
|
||||
title: DIAGNOSTICS_CHECKS_MAP.FAKEIP.title,
|
||||
@@ -112,6 +120,14 @@ export const loadingDiagnosticsChecksStore: Pick<
|
||||
items: [],
|
||||
state: 'skipped',
|
||||
},
|
||||
{
|
||||
code: DIAGNOSTICS_CHECKS.OUTBOUNDS,
|
||||
title: DIAGNOSTICS_CHECKS_MAP.OUTBOUNDS.title,
|
||||
order: DIAGNOSTICS_CHECKS_MAP.OUTBOUNDS.order,
|
||||
description: _('Pending'),
|
||||
items: [],
|
||||
state: 'skipped',
|
||||
},
|
||||
{
|
||||
code: DIAGNOSTICS_CHECKS.FAKEIP,
|
||||
title: DIAGNOSTICS_CHECKS_MAP.FAKEIP.title,
|
||||
|
||||
@@ -19,6 +19,7 @@ import { renderModal } from '../../../partials';
|
||||
import { PODKOP_LUCI_APP_VERSION } from '../../../constants';
|
||||
import { showToast } from '../../../helpers/showToast';
|
||||
import { renderWikiDisclaimer } from './partials/renderWikiDisclaimer';
|
||||
import { runSectionsCheck } from './checks/runSectionsCheck';
|
||||
|
||||
async function fetchSystemInfo() {
|
||||
const systemInfo = await PodkopShellMethods.getSystemInfo();
|
||||
@@ -414,9 +415,9 @@ function renderDiagnosticSystemInfoWidget() {
|
||||
function getPodkopVersionRow(): IRenderSystemInfoRow {
|
||||
const loading = diagnosticsSystemInfo.loading;
|
||||
const unknown = diagnosticsSystemInfo.podkop_version === _('unknown');
|
||||
const hasActualVersion = Boolean(
|
||||
diagnosticsSystemInfo.podkop_latest_version,
|
||||
);
|
||||
const hasActualVersion =
|
||||
Boolean(diagnosticsSystemInfo.podkop_latest_version) &&
|
||||
diagnosticsSystemInfo.podkop_latest_version !== 'unknown';
|
||||
const version = normalizeCompiledVersion(
|
||||
diagnosticsSystemInfo.podkop_version,
|
||||
);
|
||||
@@ -518,6 +519,8 @@ async function runChecks() {
|
||||
|
||||
await runNftCheck();
|
||||
|
||||
await runSectionsCheck();
|
||||
|
||||
await runFakeIPCheck();
|
||||
} catch (e) {
|
||||
logger.error('[DIAGNOSTIC]', 'runChecks - e', e);
|
||||
|
||||
@@ -196,4 +196,11 @@ export namespace Podkop {
|
||||
openwrt_version: string;
|
||||
device_model: string;
|
||||
}
|
||||
|
||||
export interface GetClashApiProxyLatency {
|
||||
delay: number;
|
||||
message?: string;
|
||||
}
|
||||
|
||||
export type GetClashApiGroupLatency = Record<string, number>;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ const invalidUrls = [
|
||||
['Unsupported protocol (ftp)', 'ftp://example.com'],
|
||||
['Unsupported protocol (ws)', 'ws://example.com'],
|
||||
['Empty string', ''],
|
||||
['Without tld', 'https://google'],
|
||||
];
|
||||
|
||||
describe('validateUrl', () => {
|
||||
|
||||
@@ -1,18 +1,8 @@
|
||||
import { ValidationResult } from './types';
|
||||
|
||||
// TODO refactor current validation and add tests
|
||||
export function validateOutboundJson(value: string): ValidationResult {
|
||||
try {
|
||||
const parsed = JSON.parse(value);
|
||||
|
||||
if (!parsed.type || !parsed.server || !parsed.server_port) {
|
||||
return {
|
||||
valid: false,
|
||||
message: _(
|
||||
'Outbound JSON must contain at least "type", "server" and "server_port" fields',
|
||||
),
|
||||
};
|
||||
}
|
||||
JSON.parse(value);
|
||||
|
||||
return { valid: true, message: _('Valid') };
|
||||
} catch {
|
||||
|
||||
@@ -2,19 +2,31 @@ import { ValidationResult } from './types';
|
||||
|
||||
export function validateUrl(
|
||||
url: string,
|
||||
protocols: string[] = ['http:', 'https:'],
|
||||
protocols = ['http:', 'https:'],
|
||||
): ValidationResult {
|
||||
try {
|
||||
const parsedUrl = new URL(url);
|
||||
|
||||
if (!protocols.includes(parsedUrl.protocol)) {
|
||||
return {
|
||||
valid: false,
|
||||
message: `${_('URL must use one of the following protocols:')} ${protocols.join(', ')}`,
|
||||
};
|
||||
}
|
||||
return { valid: true, message: _('Valid') };
|
||||
} catch (_e) {
|
||||
if (!url.length) {
|
||||
return { valid: false, message: _('Invalid URL format') };
|
||||
}
|
||||
|
||||
const hasValidProtocol = protocols.some((p) => url.indexOf(p + '//') === 0);
|
||||
|
||||
if (!hasValidProtocol)
|
||||
return {
|
||||
valid: false,
|
||||
message:
|
||||
_('URL must use one of the following protocols:') +
|
||||
' ' +
|
||||
protocols.join(', '),
|
||||
};
|
||||
|
||||
const regex = new RegExp(
|
||||
`^(?:${protocols.map((p) => p.replace(':', '')).join('|')})://` +
|
||||
`(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,}(?::\\d+)?(?:/[^\\s]*)?$`,
|
||||
);
|
||||
|
||||
if (regex.test(url)) {
|
||||
return { valid: true, message: _('Valid') };
|
||||
}
|
||||
|
||||
return { valid: false, message: _('Invalid URL format') };
|
||||
}
|
||||
|
||||
@@ -58,18 +58,22 @@ function validateDNS(value) {
|
||||
|
||||
// src/validators/validateUrl.ts
|
||||
function validateUrl(url, protocols = ["http:", "https:"]) {
|
||||
try {
|
||||
const parsedUrl = new URL(url);
|
||||
if (!protocols.includes(parsedUrl.protocol)) {
|
||||
return {
|
||||
valid: false,
|
||||
message: `${_("URL must use one of the following protocols:")} ${protocols.join(", ")}`
|
||||
};
|
||||
}
|
||||
return { valid: true, message: _("Valid") };
|
||||
} catch (_e) {
|
||||
if (!url.length) {
|
||||
return { valid: false, message: _("Invalid URL format") };
|
||||
}
|
||||
const hasValidProtocol = protocols.some((p) => url.indexOf(p + "//") === 0);
|
||||
if (!hasValidProtocol)
|
||||
return {
|
||||
valid: false,
|
||||
message: _("URL must use one of the following protocols:") + " " + protocols.join(", ")
|
||||
};
|
||||
const regex = new RegExp(
|
||||
`^(?:${protocols.map((p) => p.replace(":", "")).join("|")})://(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,}(?::\\d+)?(?:/[^\\s]*)?$`
|
||||
);
|
||||
if (regex.test(url)) {
|
||||
return { valid: true, message: _("Valid") };
|
||||
}
|
||||
return { valid: false, message: _("Invalid URL format") };
|
||||
}
|
||||
|
||||
// src/validators/validatePath.ts
|
||||
@@ -323,15 +327,7 @@ function validateVlessUrl(url) {
|
||||
// src/validators/validateOutboundJson.ts
|
||||
function validateOutboundJson(value) {
|
||||
try {
|
||||
const parsed = JSON.parse(value);
|
||||
if (!parsed.type || !parsed.server || !parsed.server_port) {
|
||||
return {
|
||||
valid: false,
|
||||
message: _(
|
||||
'Outbound JSON must contain at least "type", "server" and "server_port" fields'
|
||||
)
|
||||
};
|
||||
}
|
||||
JSON.parse(value);
|
||||
return { valid: true, message: _("Valid") };
|
||||
} catch {
|
||||
return { valid: false, message: _("Invalid JSON format") };
|
||||
@@ -563,14 +559,14 @@ var PodkopShellMethods = {
|
||||
getClashApiProxies: async () => callBaseMethod(Podkop.AvailableMethods.CLASH_API, [
|
||||
Podkop.AvailableClashAPIMethods.GET_PROXIES
|
||||
]),
|
||||
getClashApiProxyLatency: async (tag) => callBaseMethod(Podkop.AvailableMethods.CLASH_API, [
|
||||
Podkop.AvailableClashAPIMethods.GET_PROXY_LATENCY,
|
||||
tag
|
||||
]),
|
||||
getClashApiGroupLatency: async (tag) => callBaseMethod(Podkop.AvailableMethods.CLASH_API, [
|
||||
Podkop.AvailableClashAPIMethods.GET_GROUP_LATENCY,
|
||||
tag
|
||||
]),
|
||||
getClashApiProxyLatency: async (tag) => callBaseMethod(
|
||||
Podkop.AvailableMethods.CLASH_API,
|
||||
[Podkop.AvailableClashAPIMethods.GET_PROXY_LATENCY, tag, "5000"]
|
||||
),
|
||||
getClashApiGroupLatency: async (tag) => callBaseMethod(
|
||||
Podkop.AvailableMethods.CLASH_API,
|
||||
[Podkop.AvailableClashAPIMethods.GET_GROUP_LATENCY, tag, "10000"]
|
||||
),
|
||||
setClashApiGroupProxy: async (group, proxy) => callBaseMethod(Podkop.AvailableMethods.CLASH_API, [
|
||||
Podkop.AvailableClashAPIMethods.SET_GROUP_PROXY,
|
||||
group,
|
||||
@@ -1004,8 +1000,13 @@ var DIAGNOSTICS_CHECKS_MAP = {
|
||||
title: getCheckTitle("Nftables"),
|
||||
code: "NFT" /* NFT */
|
||||
},
|
||||
["FAKEIP" /* FAKEIP */]: {
|
||||
["OUTBOUNDS" /* OUTBOUNDS */]: {
|
||||
order: 4,
|
||||
title: getCheckTitle("Outbounds"),
|
||||
code: "OUTBOUNDS" /* OUTBOUNDS */
|
||||
},
|
||||
["FAKEIP" /* FAKEIP */]: {
|
||||
order: 5,
|
||||
title: getCheckTitle("FakeIP"),
|
||||
code: "FAKEIP" /* FAKEIP */
|
||||
}
|
||||
@@ -1074,6 +1075,14 @@ var initialDiagnosticStore = {
|
||||
items: [],
|
||||
state: "skipped"
|
||||
},
|
||||
{
|
||||
code: "OUTBOUNDS" /* OUTBOUNDS */,
|
||||
title: DIAGNOSTICS_CHECKS_MAP.OUTBOUNDS.title,
|
||||
order: DIAGNOSTICS_CHECKS_MAP.OUTBOUNDS.order,
|
||||
description: _("Not running"),
|
||||
items: [],
|
||||
state: "skipped"
|
||||
},
|
||||
{
|
||||
code: "FAKEIP" /* FAKEIP */,
|
||||
title: DIAGNOSTICS_CHECKS_MAP.FAKEIP.title,
|
||||
@@ -1110,6 +1119,14 @@ var loadingDiagnosticsChecksStore = {
|
||||
items: [],
|
||||
state: "skipped"
|
||||
},
|
||||
{
|
||||
code: "OUTBOUNDS" /* OUTBOUNDS */,
|
||||
title: DIAGNOSTICS_CHECKS_MAP.OUTBOUNDS.title,
|
||||
order: DIAGNOSTICS_CHECKS_MAP.OUTBOUNDS.order,
|
||||
description: _("Pending"),
|
||||
items: [],
|
||||
state: "skipped"
|
||||
},
|
||||
{
|
||||
code: "FAKEIP" /* FAKEIP */,
|
||||
title: DIAGNOSTICS_CHECKS_MAP.FAKEIP.title,
|
||||
@@ -2492,7 +2509,7 @@ async function runSingBoxCheck() {
|
||||
},
|
||||
{
|
||||
state: data.sing_box_version_ok ? "success" : "error",
|
||||
key: _("Sing-box version >= 1.12.4"),
|
||||
key: _("Sing-box version is compatible (newer than 1.12.4)"),
|
||||
value: ""
|
||||
},
|
||||
{
|
||||
@@ -3685,6 +3702,105 @@ function renderWikiDisclaimer(kind) {
|
||||
]);
|
||||
}
|
||||
|
||||
// src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts
|
||||
async function runSectionsCheck() {
|
||||
const { order, title, code } = DIAGNOSTICS_CHECKS_MAP.OUTBOUNDS;
|
||||
updateCheckStore({
|
||||
order,
|
||||
code,
|
||||
title,
|
||||
description: _("Checking, please wait"),
|
||||
state: "loading",
|
||||
items: []
|
||||
});
|
||||
const sections = await getDashboardSections();
|
||||
if (!sections.success) {
|
||||
updateCheckStore({
|
||||
order,
|
||||
code,
|
||||
title,
|
||||
description: _("Cannot receive checks result"),
|
||||
state: "error",
|
||||
items: []
|
||||
});
|
||||
throw new Error("Sections checks failed");
|
||||
}
|
||||
const items = await Promise.all(
|
||||
sections.data.map(async (section) => {
|
||||
async function getLatency() {
|
||||
if (section.withTagSelect) {
|
||||
const latencyGroup = await PodkopShellMethods.getClashApiGroupLatency(
|
||||
section.code
|
||||
);
|
||||
const selectedOutbound = section.outbounds.find(
|
||||
(item) => item.selected
|
||||
);
|
||||
const isUrlTest = selectedOutbound?.type === "URLTest";
|
||||
const success3 = latencyGroup.success && !latencyGroup.data.message;
|
||||
if (success3) {
|
||||
if (isUrlTest) {
|
||||
const latency2 = Object.values(latencyGroup.data).map((item) => item ? `${item}ms` : "n/a").join(" / ");
|
||||
return {
|
||||
success: true,
|
||||
latency: `[${_("Fastest")}] ${latency2}`
|
||||
};
|
||||
}
|
||||
const selectedProxyDelay = latencyGroup.data?.[selectedOutbound?.code ?? ""];
|
||||
if (selectedProxyDelay) {
|
||||
return {
|
||||
success: true,
|
||||
latency: `[${selectedOutbound?.displayName ?? ""}] ${selectedProxyDelay}ms`
|
||||
};
|
||||
}
|
||||
return {
|
||||
success: false,
|
||||
latency: `[${selectedOutbound?.displayName ?? ""}] ${_("Not responding")}`
|
||||
};
|
||||
}
|
||||
return {
|
||||
success: false,
|
||||
latency: _("Not responding")
|
||||
};
|
||||
}
|
||||
const latencyProxy = await PodkopShellMethods.getClashApiProxyLatency(
|
||||
section.code
|
||||
);
|
||||
const success2 = latencyProxy.success && !latencyProxy.data.message;
|
||||
if (success2) {
|
||||
return {
|
||||
success: true,
|
||||
latency: `${latencyProxy.data.delay} ms`
|
||||
};
|
||||
}
|
||||
return {
|
||||
success: false,
|
||||
latency: _("Not responding")
|
||||
};
|
||||
}
|
||||
const { latency, success } = await getLatency();
|
||||
return {
|
||||
state: success ? "success" : "error",
|
||||
key: section.displayName,
|
||||
value: latency
|
||||
};
|
||||
})
|
||||
);
|
||||
const allGood = items.every((item) => item.state === "success");
|
||||
const atLeastOneGood = items.some((item) => item.state === "success");
|
||||
const { state, description } = getMeta({ atLeastOneGood, allGood });
|
||||
updateCheckStore({
|
||||
order,
|
||||
code,
|
||||
title,
|
||||
description,
|
||||
state,
|
||||
items
|
||||
});
|
||||
if (!atLeastOneGood) {
|
||||
throw new Error("Sections checks failed");
|
||||
}
|
||||
}
|
||||
|
||||
// src/podkop/tabs/diagnostic/initController.ts
|
||||
async function fetchSystemInfo() {
|
||||
const systemInfo = await PodkopShellMethods.getSystemInfo();
|
||||
@@ -4032,9 +4148,7 @@ function renderDiagnosticSystemInfoWidget() {
|
||||
function getPodkopVersionRow() {
|
||||
const loading = diagnosticsSystemInfo.loading;
|
||||
const unknown = diagnosticsSystemInfo.podkop_version === _("unknown");
|
||||
const hasActualVersion = Boolean(
|
||||
diagnosticsSystemInfo.podkop_latest_version
|
||||
);
|
||||
const hasActualVersion = Boolean(diagnosticsSystemInfo.podkop_latest_version) && diagnosticsSystemInfo.podkop_latest_version !== "unknown";
|
||||
const version = normalizeCompiledVersion(
|
||||
diagnosticsSystemInfo.podkop_version
|
||||
);
|
||||
@@ -4118,6 +4232,7 @@ async function runChecks() {
|
||||
await runDnsCheck();
|
||||
await runSingBoxCheck();
|
||||
await runNftCheck();
|
||||
await runSectionsCheck();
|
||||
await runFakeIPCheck();
|
||||
} catch (e) {
|
||||
logger.error("[DIAGNOSTIC]", "runChecks - e", e);
|
||||
@@ -4624,6 +4739,10 @@ function insertIf(condition, elements) {
|
||||
function insertIfObj(condition, object) {
|
||||
return condition ? object : {};
|
||||
}
|
||||
|
||||
// src/main.ts
|
||||
if (typeof structuredClone !== "function")
|
||||
globalThis.structuredClone = (obj) => JSON.parse(JSON.stringify(obj));
|
||||
return baseclass.extend({
|
||||
ALLOWED_WITH_RUSSIA_INSIDE,
|
||||
BOOTSTRAP_DNS_SERVER_OPTIONS,
|
||||
|
||||
@@ -104,6 +104,70 @@ function createSectionContent(section) {
|
||||
return validation.message;
|
||||
};
|
||||
|
||||
o = section.option(
|
||||
form.ListValue,
|
||||
"urltest_check_interval",
|
||||
_("URLTest Check Interval"),
|
||||
_("The interval between connectivity tests")
|
||||
);
|
||||
o.value("30s", _("Every 30 seconds"));
|
||||
o.value("1m", _("Every 1 minute"));
|
||||
o.value("3m", _("Every 3 minutes"));
|
||||
o.value("5m", _("Every 5 minutes"));
|
||||
o.default = "3m";
|
||||
o.depends("proxy_config_type", "urltest");
|
||||
|
||||
o = section.option(
|
||||
form.Value,
|
||||
"urltest_tolerance",
|
||||
_("URLTest Tolerance"),
|
||||
_("The maximum difference in response times (ms) allowed when comparing servers")
|
||||
);
|
||||
o.default = "50";
|
||||
o.rmempty = false;
|
||||
o.depends("proxy_config_type", "urltest");
|
||||
o.validate = function (section_id, value) {
|
||||
if (!value || value.length === 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const parsed = parseFloat(value);
|
||||
|
||||
if (/^[0-9]+$/.test(value) && !isNaN(parsed) && isFinite(parsed) && parsed >= 50 && parsed <= 1000) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return _('Must be a number in the range of 50 - 1000');
|
||||
};
|
||||
|
||||
o = section.option(
|
||||
form.Value,
|
||||
"urltest_testing_url",
|
||||
_("URLTest Testing URL"),
|
||||
_("The URL used to test server connectivity")
|
||||
);
|
||||
o.value("https://www.gstatic.com/generate_204", "https://www.gstatic.com/generate_204 (Google)");
|
||||
o.value("https://cp.cloudflare.com/generate_204", "https://cp.cloudflare.com/generate_204 (Cloudflare)");
|
||||
o.value("https://captive.apple.com", "https://captive.apple.com (Apple)");
|
||||
o.value("https://connectivity-check.ubuntu.com", "https://connectivity-check.ubuntu.com (Ubuntu)")
|
||||
o.default = "https://www.gstatic.com/generate_204";
|
||||
o.rmempty = false;
|
||||
o.depends("proxy_config_type", "urltest");
|
||||
|
||||
o.validate = function (section_id, value) {
|
||||
if (!value || value.length === 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const validation = main.validateUrl(value);
|
||||
|
||||
if (validation.valid) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return validation.message;
|
||||
};
|
||||
|
||||
o = section.option(
|
||||
form.Flag,
|
||||
"enable_udp_over_tcp",
|
||||
|
||||
@@ -267,7 +267,7 @@ function createSettingsContent(section) {
|
||||
form.Flag,
|
||||
"download_lists_via_proxy",
|
||||
_("Download Lists via Proxy/VPN"),
|
||||
_("Downloading all lists via main Proxy/VPN"),
|
||||
_("Downloading all lists via specific Proxy/VPN"),
|
||||
);
|
||||
o.default = "0";
|
||||
o.rmempty = false;
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PODKOP\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-23 20:43+0300\n"
|
||||
"PO-Revision-Date: 2025-10-23 20:43+0300\n"
|
||||
"POT-Creation-Date: 2025-10-27 13:15+0200\n"
|
||||
"PO-Revision-Date: 2025-10-27 13:15+0200\n"
|
||||
"Last-Translator: divocat\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: ru\n"
|
||||
@@ -182,9 +182,6 @@ msgstr "Скачивать списки через Proxy/VPN"
|
||||
msgid "Download Lists via specific proxy section"
|
||||
msgstr "Скачивать списки через выбранную секцию"
|
||||
|
||||
msgid "Downloading all lists via main Proxy/VPN"
|
||||
msgstr "Загрузка всех списков через основной прокси/VPN"
|
||||
|
||||
msgid "Downloading all lists via specific Proxy/VPN"
|
||||
msgstr "Загрузка всех списков через указанный прокси/VPN"
|
||||
|
||||
@@ -221,6 +218,18 @@ msgstr "Введите доменные имена без протоколов,
|
||||
msgid "Enter subnets in CIDR notation (e.g. 103.21.244.0/22) or single IP addresses"
|
||||
msgstr "Введите подсети в нотации CIDR (например, 103.21.244.0/22) или отдельные IP-адреса"
|
||||
|
||||
msgid "Every 1 minute"
|
||||
msgstr "Каждую минуту"
|
||||
|
||||
msgid "Every 3 minutes"
|
||||
msgstr "Каждые 3 минуты"
|
||||
|
||||
msgid "Every 30 seconds"
|
||||
msgstr "Каждые 30 секунд"
|
||||
|
||||
msgid "Every 5 minutes"
|
||||
msgstr "Каждые 5 минут"
|
||||
|
||||
msgid "Exclude NTP"
|
||||
msgstr "Исключить NTP"
|
||||
|
||||
@@ -377,6 +386,9 @@ msgstr "Порт смешанного прокси"
|
||||
msgid "Monitored Interfaces"
|
||||
msgstr "Наблюдаемые интерфейсы"
|
||||
|
||||
msgid "Must be a number in the range of 50 - 1000"
|
||||
msgstr "Должно быть числом от 50 до 1000"
|
||||
|
||||
msgid "Network Interface"
|
||||
msgstr "Сетевой интерфейс"
|
||||
|
||||
@@ -386,6 +398,9 @@ msgstr "Другие правила маркировки не найдены"
|
||||
msgid "Not implement yet"
|
||||
msgstr "Ещё не реализовано"
|
||||
|
||||
msgid "Not responding"
|
||||
msgstr "Не отвечает"
|
||||
|
||||
msgid "Not running"
|
||||
msgstr "Не запущено"
|
||||
|
||||
@@ -398,9 +413,6 @@ msgstr "Конфигурация Outbound"
|
||||
msgid "Outbound Configuration"
|
||||
msgstr "Конфигурация исходящего соединения"
|
||||
|
||||
msgid "Outbound JSON must contain at least \"type\", \"server\" and \"server_port\" fields"
|
||||
msgstr "JSON должен содержать поля \"type\", \"server\" и \"server_port\""
|
||||
|
||||
msgid "Outdated"
|
||||
msgstr "Устаревшая"
|
||||
|
||||
@@ -560,8 +572,8 @@ msgstr "Процесс sing-box запущен"
|
||||
msgid "Sing-box service exist"
|
||||
msgstr "Сервис sing-box существует"
|
||||
|
||||
msgid "Sing-box version >= 1.12.4"
|
||||
msgstr "Версия sing-box >= 1.12.4"
|
||||
msgid "Sing-box version is compatible (newer than 1.12.4)"
|
||||
msgstr "Версия Sing-box совместима (новее 1.12.4)"
|
||||
|
||||
msgid "Source Network Interface"
|
||||
msgstr "Сетевой интерфейс источника"
|
||||
@@ -611,6 +623,15 @@ msgstr "Текстовый список (через запятую, пробел
|
||||
msgid "The DNS server used to look up the IP address of an upstream DNS server"
|
||||
msgstr "DNS-сервер, используемый для поиска IP-адреса вышестоящего DNS-сервера"
|
||||
|
||||
msgid "The interval between connectivity tests"
|
||||
msgstr "Интервал между тестами подключения"
|
||||
|
||||
msgid "The maximum difference in response times (ms) allowed when comparing servers"
|
||||
msgstr "Максимально допустимая разница во времени отклика (мс) при сравнении серверов"
|
||||
|
||||
msgid "The URL used to test server connectivity"
|
||||
msgstr "URL-адрес, используемый для проверки подключения к серверу"
|
||||
|
||||
msgid "Time in seconds for DNS record caching (default: 60)"
|
||||
msgstr "Время в секундах для кэширования DNS записей (по умолчанию: 60)"
|
||||
|
||||
@@ -653,9 +674,18 @@ msgstr "URL должен использовать один из следующи
|
||||
msgid "URLTest"
|
||||
msgstr "URLTest"
|
||||
|
||||
msgid "URLTest Check Interval"
|
||||
msgstr "Интервал проверки URLTest"
|
||||
|
||||
msgid "URLTest Proxy Links"
|
||||
msgstr "Ссылки прокси для URLTest"
|
||||
|
||||
msgid "URLTest Testing URL"
|
||||
msgstr "URL для тестирования URLTest"
|
||||
|
||||
msgid "URLTest Tolerance"
|
||||
msgstr "Порог переключения URLTest"
|
||||
|
||||
msgid "User Domain List Type"
|
||||
msgstr "Тип пользовательского списка доменов"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PODKOP\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-23 17:43+0300\n"
|
||||
"PO-Revision-Date: 2025-10-23 17:43+0300\n"
|
||||
"POT-Creation-Date: 2025-10-27 11:15+0200\n"
|
||||
"PO-Revision-Date: 2025-10-27 11:15+0200\n"
|
||||
"Last-Translator: divocat <divocatt@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
@@ -40,15 +40,15 @@ msgstr ""
|
||||
msgid "Additional marking rules found"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:111
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:175
|
||||
msgid "Applicable for SOCKS and Shadowsocks proxy"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:356
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:420
|
||||
msgid "At least one valid domain must be specified. Comments-only content is not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:437
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:501
|
||||
msgid "At least one valid subnet or IP must be specified. Comments-only content is not allowed."
|
||||
msgstr ""
|
||||
|
||||
@@ -82,6 +82,7 @@ msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:27
|
||||
#: src/podkop/tabs/diagnostic/checks/runNftCheck.ts:28
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:27
|
||||
#: src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:25
|
||||
msgid "Cannot receive checks result"
|
||||
msgstr ""
|
||||
@@ -89,6 +90,7 @@ msgstr ""
|
||||
#: src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:15
|
||||
#: src/podkop/tabs/diagnostic/checks/runFakeIPCheck.ts:15
|
||||
#: src/podkop/tabs/diagnostic/checks/runNftCheck.ts:13
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:15
|
||||
#: src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:13
|
||||
msgid "Checking, please wait"
|
||||
msgstr ""
|
||||
@@ -113,7 +115,7 @@ msgstr ""
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:211
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:275
|
||||
msgid "Community Lists"
|
||||
msgstr ""
|
||||
|
||||
@@ -181,8 +183,8 @@ msgstr ""
|
||||
msgid "Disable the QUIC protocol to improve compatibility or fix issues with video streaming"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:302
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:382
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:366
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:446
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
@@ -190,17 +192,17 @@ msgstr ""
|
||||
msgid "DNS on router"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:179
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:243
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:15
|
||||
msgid "DNS over HTTPS (DoH)"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:180
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:244
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:16
|
||||
msgid "DNS over TLS (DoT)"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:176
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:240
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:12
|
||||
msgid "DNS Protocol Type"
|
||||
msgstr ""
|
||||
@@ -209,7 +211,7 @@ msgstr ""
|
||||
msgid "DNS Rewrite TTL"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:189
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:253
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:24
|
||||
msgid "DNS Server"
|
||||
msgstr ""
|
||||
@@ -222,7 +224,7 @@ msgstr ""
|
||||
msgid "Do not panic, everything can be fixed, just..."
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:166
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:230
|
||||
msgid "Domain Resolver"
|
||||
msgstr ""
|
||||
|
||||
@@ -248,15 +250,12 @@ msgid "Download Lists via specific proxy section"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:270
|
||||
msgid "Downloading all lists via main Proxy/VPN"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:279
|
||||
msgid "Downloading all lists via specific Proxy/VPN"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:303
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:383
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:367
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:447
|
||||
msgid "Dynamic List"
|
||||
msgstr ""
|
||||
|
||||
@@ -264,11 +263,11 @@ msgstr ""
|
||||
msgid "Enable autostart"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:167
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:231
|
||||
msgid "Enable built-in DNS resolver for domains handled by this section"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:575
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:639
|
||||
msgid "Enable Mixed Proxy"
|
||||
msgstr ""
|
||||
|
||||
@@ -276,7 +275,7 @@ msgstr ""
|
||||
msgid "Enable Output Network Interface"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:576
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:640
|
||||
msgid "Enable the mixed proxy, allowing this section to route traffic through both HTTP and SOCKS proxies"
|
||||
msgstr ""
|
||||
|
||||
@@ -288,18 +287,34 @@ msgstr ""
|
||||
msgid "Enter complete outbound configuration in JSON format"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:338
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:402
|
||||
msgid "Enter domain names separated by commas, spaces, or newlines. You can add comments using //"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:312
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:376
|
||||
msgid "Enter domain names without protocols, e.g. example.com or sub.example.com"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:392
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:456
|
||||
msgid "Enter subnets in CIDR notation (e.g. 103.21.244.0/22) or single IP addresses"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:114
|
||||
msgid "Every 1 minute"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:115
|
||||
msgid "Every 3 minutes"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:113
|
||||
msgid "Every 30 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:116
|
||||
msgid "Every 5 minutes"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:365
|
||||
msgid "Exclude NTP"
|
||||
msgstr ""
|
||||
@@ -312,20 +327,21 @@ msgstr ""
|
||||
msgid "Failed to copy!"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:226
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:230
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:260
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:264
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:298
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:302
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:227
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:231
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:261
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:265
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:299
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:303
|
||||
msgid "Failed to execute!"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/methods/custom/getDashboardSections.ts:117
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:59
|
||||
msgid "Fastest"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:550
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:614
|
||||
msgid "Fully Routed IPs"
|
||||
msgstr ""
|
||||
|
||||
@@ -333,7 +349,7 @@ msgstr ""
|
||||
msgid "Get global check"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:221
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:222
|
||||
msgid "Global check"
|
||||
msgstr ""
|
||||
|
||||
@@ -370,7 +386,7 @@ msgstr ""
|
||||
msgid "Invalid IP address"
|
||||
msgstr ""
|
||||
|
||||
#: src/validators/validateOutboundJson.ts:19
|
||||
#: src/validators/validateOutboundJson.ts:9
|
||||
msgid "Invalid JSON format"
|
||||
msgstr ""
|
||||
|
||||
@@ -466,7 +482,8 @@ msgstr ""
|
||||
msgid "Invalid Trojan URL: parsing failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/validators/validateUrl.ts:18
|
||||
#: src/validators/validateUrl.ts:8
|
||||
#: src/validators/validateUrl.ts:31
|
||||
msgid "Invalid URL format"
|
||||
msgstr ""
|
||||
|
||||
@@ -482,7 +499,7 @@ msgstr ""
|
||||
msgid "Issues detected"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:452
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:453
|
||||
msgid "Latest"
|
||||
msgstr ""
|
||||
|
||||
@@ -490,11 +507,11 @@ msgstr ""
|
||||
msgid "List Update Frequency"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:458
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:522
|
||||
msgid "Local Domain Lists"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:481
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:545
|
||||
msgid "Local Subnet Lists"
|
||||
msgstr ""
|
||||
|
||||
@@ -506,7 +523,7 @@ msgstr ""
|
||||
msgid "Memory Usage"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:586
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:650
|
||||
msgid "Mixed Proxy Port"
|
||||
msgstr ""
|
||||
|
||||
@@ -514,7 +531,11 @@ msgstr ""
|
||||
msgid "Monitored Interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:120
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:140
|
||||
msgid "Must be a number in the range of 50 - 1000"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:184
|
||||
msgid "Network Interface"
|
||||
msgstr ""
|
||||
|
||||
@@ -526,10 +547,17 @@ msgstr ""
|
||||
msgid "Not implement yet"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:75
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:81
|
||||
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:100
|
||||
msgid "Not responding"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:55
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:63
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:71
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:79
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:87
|
||||
msgid "Not running"
|
||||
msgstr ""
|
||||
|
||||
@@ -545,11 +573,7 @@ msgstr ""
|
||||
msgid "Outbound Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: src/validators/validateOutboundJson.ts:11
|
||||
msgid "Outbound JSON must contain at least \"type\", \"server\" and \"server_port\" fields"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:442
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:443
|
||||
msgid "Outdated"
|
||||
msgstr ""
|
||||
|
||||
@@ -573,10 +597,11 @@ msgstr ""
|
||||
msgid "Path must end with cache.db"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:95
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:103
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:111
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:119
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:127
|
||||
#: src/podkop/tabs/diagnostic/diagnostic.store.ts:135
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
|
||||
@@ -604,15 +629,15 @@ msgstr ""
|
||||
msgid "Proxy traffic is routed via FakeIP"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:245
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:309
|
||||
msgid "Regional options cannot be used together"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:504
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:568
|
||||
msgid "Remote Domain Lists"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:527
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:591
|
||||
msgid "Remote Subnet Lists"
|
||||
msgstr ""
|
||||
|
||||
@@ -660,7 +685,7 @@ msgstr ""
|
||||
msgid "Run Diagnostic"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:264
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:328
|
||||
msgid "Russia inside restrictions"
|
||||
msgstr ""
|
||||
|
||||
@@ -668,7 +693,7 @@ msgstr ""
|
||||
msgid "Sections"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:212
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:276
|
||||
msgid "Select a predefined list for routing"
|
||||
msgstr ""
|
||||
|
||||
@@ -688,11 +713,11 @@ msgstr ""
|
||||
msgid "Select how to configure the proxy"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:121
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:185
|
||||
msgid "Select network interface for VPN connection"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:190
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:254
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:25
|
||||
msgid "Select or enter DNS server address"
|
||||
msgstr ""
|
||||
@@ -705,15 +730,15 @@ msgstr ""
|
||||
msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:177
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:241
|
||||
msgid "Select the DNS protocol type for the domain resolver"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:300
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:364
|
||||
msgid "Select the list type for adding custom domains"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:380
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:444
|
||||
msgid "Select the list type for adding custom subnets"
|
||||
msgstr ""
|
||||
|
||||
@@ -737,7 +762,7 @@ msgstr ""
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:289
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:290
|
||||
#: src/podkop/tabs/diagnostic/partials/renderAvailableActions.ts:116
|
||||
msgid "Show sing-box config"
|
||||
msgstr ""
|
||||
@@ -767,7 +792,7 @@ msgid "Sing-box service exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:67
|
||||
msgid "Sing-box version >= 1.12.4"
|
||||
msgid "Sing-box version is compatible (newer than 1.12.4)"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:89
|
||||
@@ -778,20 +803,20 @@ msgstr ""
|
||||
msgid "Specify a local IP address to be excluded from routing"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:551
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:615
|
||||
msgid "Specify local IP addresses or subnets whose traffic will always be routed through the configured route"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:505
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:569
|
||||
msgid "Specify remote URLs to download and use domain lists"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:528
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:592
|
||||
msgid "Specify remote URLs to download and use subnet lists"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:459
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:482
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:523
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:546
|
||||
msgid "Specify the path to the list file located on the router filesystem"
|
||||
msgstr ""
|
||||
|
||||
@@ -823,11 +848,11 @@ msgstr ""
|
||||
msgid "Test latency"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:304
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:368
|
||||
msgid "Text List"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:384
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:448
|
||||
msgid "Text List (comma/space/newline separated)"
|
||||
msgstr ""
|
||||
|
||||
@@ -835,6 +860,18 @@ msgstr ""
|
||||
msgid "The DNS server used to look up the IP address of an upstream DNS server"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:111
|
||||
msgid "The interval between connectivity tests"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:124
|
||||
msgid "The maximum difference in response times (ms) allowed when comparing servers"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:147
|
||||
msgid "The URL used to test server connectivity"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:69
|
||||
msgid "Time in seconds for DNS record caching (default: 60)"
|
||||
msgstr ""
|
||||
@@ -859,22 +896,22 @@ msgstr ""
|
||||
msgid "TTL value cannot be empty"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:181
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:245
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:17
|
||||
msgid "UDP (Unprotected DNS)"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:110
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:174
|
||||
msgid "UDP over TCP"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:37
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:38
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:39
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:40
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:41
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:42
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:416
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:43
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:417
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
@@ -891,7 +928,7 @@ msgstr ""
|
||||
msgid "URL must start with vless://, ss://, trojan://, or socks4/5://"
|
||||
msgstr ""
|
||||
|
||||
#: src/validators/validateUrl.ts:13
|
||||
#: src/validators/validateUrl.ts:17
|
||||
msgid "URL must use one of the following protocols:"
|
||||
msgstr ""
|
||||
|
||||
@@ -899,31 +936,43 @@ msgstr ""
|
||||
msgid "URLTest"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:110
|
||||
msgid "URLTest Check Interval"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:87
|
||||
msgid "URLTest Proxy Links"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:299
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:146
|
||||
msgid "URLTest Testing URL"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:123
|
||||
msgid "URLTest Tolerance"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:363
|
||||
msgid "User Domain List Type"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:311
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:375
|
||||
msgid "User Domains"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:337
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:401
|
||||
msgid "User Domains List"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:379
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:443
|
||||
msgid "User Subnet List Type"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:391
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:455
|
||||
msgid "User Subnets"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:417
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:481
|
||||
msgid "User Subnets List"
|
||||
msgstr ""
|
||||
|
||||
@@ -932,23 +981,23 @@ msgstr ""
|
||||
#: src/validators/validateDomain.ts:13
|
||||
#: src/validators/validateDomain.ts:30
|
||||
#: src/validators/validateIp.ts:8
|
||||
#: src/validators/validateOutboundJson.ts:17
|
||||
#: src/validators/validateOutboundJson.ts:7
|
||||
#: src/validators/validatePath.ts:16
|
||||
#: src/validators/validateShadowsocksUrl.ts:95
|
||||
#: src/validators/validateSocksUrl.ts:80
|
||||
#: src/validators/validateSubnet.ts:38
|
||||
#: src/validators/validateTrojanUrl.ts:59
|
||||
#: src/validators/validateUrl.ts:16
|
||||
#: src/validators/validateUrl.ts:28
|
||||
#: src/validators/validateVlessUrl.ts:108
|
||||
msgid "Valid"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:370
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:449
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:434
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:513
|
||||
msgid "Validation errors:"
|
||||
msgstr ""
|
||||
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:255
|
||||
#: src/podkop/tabs/diagnostic/initController.ts:256
|
||||
#: src/podkop/tabs/diagnostic/partials/renderAvailableActions.ts:107
|
||||
msgid "View logs"
|
||||
msgstr ""
|
||||
@@ -957,11 +1006,11 @@ msgstr ""
|
||||
msgid "Visit Wiki"
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:247
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:311
|
||||
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
|
||||
msgstr ""
|
||||
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:266
|
||||
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:330
|
||||
msgid "Warning: Russia inside can only be used with %s. %s already in Russia inside and have been removed from selection."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -627,9 +627,12 @@ configure_outbound_handler() {
|
||||
urltest)
|
||||
log "Detected proxy configuration type: urltest" "debug"
|
||||
local urltest_proxy_links udp_over_tcp i urltest_tag selector_tag outbound_tag outbound_tags \
|
||||
urltest_outbounds selector_outbounds
|
||||
urltest_outbounds selector_outbounds urltest_check_interval urltest_tolerance urltest_testing_url
|
||||
config_get urltest_proxy_links "$section" "urltest_proxy_links"
|
||||
config_get udp_over_tcp "$section" "enable_udp_over_tcp"
|
||||
config_get urltest_check_interval "$section" "urltest_check_interval" "3m"
|
||||
config_get urltest_tolerance "$section" "urltest_tolerance" 50
|
||||
config_get urltest_testing_url "$section" "urltest_testing_url" "https://www.gstatic.com/generate_204"
|
||||
|
||||
if [ -z "$urltest_proxy_links" ]; then
|
||||
log "URLTest proxy links is not set. Aborted." "fatal"
|
||||
@@ -652,7 +655,8 @@ configure_outbound_handler() {
|
||||
selector_tag="$(get_outbound_tag_by_section "$section")"
|
||||
urltest_outbounds="$(comma_string_to_json_array "$outbound_tags")"
|
||||
selector_outbounds="$(comma_string_to_json_array "$outbound_tags,$urltest_tag")"
|
||||
config="$(sing_box_cm_add_urltest_outbound "$config" "$urltest_tag" "$urltest_outbounds")"
|
||||
config="$(sing_box_cm_add_urltest_outbound "$config" "$urltest_tag" "$urltest_outbounds" \
|
||||
"$urltest_testing_url" "$urltest_check_interval" "$urltest_tolerance")"
|
||||
config="$(sing_box_cm_add_selector_outbound "$config" "$selector_tag" "$selector_outbounds" "$urltest_tag")"
|
||||
;;
|
||||
*)
|
||||
@@ -767,7 +771,7 @@ sing_box_configure_route() {
|
||||
configure_common_reject_route_rule
|
||||
|
||||
local routing_excluded_ips
|
||||
config_get_bool routing_excluded_ips "settings" "routing_excluded_ips"
|
||||
config_get routing_excluded_ips "settings" "routing_excluded_ips"
|
||||
if [ -n "$routing_excluded_ips" ]; then
|
||||
rule_tag="$(gen_id)"
|
||||
config=$(sing_box_cm_add_route_rule "$config" "$rule_tag" "$SB_TPROXY_INBOUND_TAG" "$SB_DIRECT_OUTBOUND_TAG")
|
||||
@@ -1684,16 +1688,10 @@ show_config() {
|
||||
tmp_config=$(mktemp)
|
||||
|
||||
sed -e 's/\(option proxy_string\).*/\1 '\''MASKED'\''/g' \
|
||||
-e 's/\(option outbound_json\).*/\1 '\''MASKED'\''/g' \
|
||||
-e 's/\(option second_proxy_string\).*/\1 '\''MASKED'\''/g' \
|
||||
-e 's/\(option second_outbound_json\).*/\1 '\''MASKED'\''/g' \
|
||||
-e 's/\(vless:\/\/[^@]*@\)/vless:\/\/MASKED@/g' \
|
||||
-e 's/\(ss:\/\/[^@]*@\)/ss:\/\/MASKED@/g' \
|
||||
-e 's/\(pbk=[^&]*\)/pbk=MASKED/g' \
|
||||
-e 's/\(sid=[^&]*\)/sid=MASKED/g' \
|
||||
-e 's/\(option dns_server '\''[^'\'']*\.dns\.nextdns\.io'\''\)/option dns_server '\''MASKED.dns.nextdns.io'\''/g' \
|
||||
-e "s|\(option dns_server 'dns\.nextdns\.io\)/[^']*|\1/MASKED|" \
|
||||
-e '/option outbound_json/,/^}/c\ option outbound_json '\''MASKED'\''' \
|
||||
-e 's/\(list urltest_proxy_links\).*/\1 '\''MASKED'\''/g' \
|
||||
-e "s@\\(option dns_server '[^/]*\\)/[^']*'@\\1/MASKED'@g" \
|
||||
-e "s@\\(option domain_resolver_dns_server '[^/]*\\)/[^']*'@\\1/MASKED'@g" \
|
||||
"$PODKOP_CONFIG" > "$tmp_config"
|
||||
|
||||
cat "$tmp_config"
|
||||
@@ -2279,9 +2277,9 @@ global_check() {
|
||||
fi
|
||||
|
||||
if [ "$sing_box_version_ok" -eq 1 ]; then
|
||||
print_global "✅ Sing-box version >= 1.12.4"
|
||||
print_global "✅ Sing-box version is compatible (newer than 1.12.4)"
|
||||
else
|
||||
print_global "❌ Sing-box version >= 1.12.4"
|
||||
print_global "❌ Sing-box version is not compatible (older than 1.12.4)"
|
||||
fi
|
||||
|
||||
if [ "$sing_box_service_exist" -eq 1 ]; then
|
||||
|
||||
Reference in New Issue
Block a user