Expand zapret provider diagnostics

This commit is contained in:
ushan0v
2026-05-01 15:58:29 +03:00
parent ba4bdb85fa
commit 526b900e26
10 changed files with 628 additions and 194 deletions
+124 -17
View File
@@ -1,4 +1,11 @@
[
{
"call": "/etc/config/zapret present",
"key": "/etc/config/zapret present",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:136"
]
},
{
"call": "✔ Running",
"key": "✔ Running",
@@ -216,7 +223,7 @@
"src/podkop/tabs/diagnostic/checks/runNftCheck.ts:28",
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:27",
"src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:25",
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:24"
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:30"
]
},
{
@@ -228,7 +235,7 @@
"src/podkop/tabs/diagnostic/checks/runNftCheck.ts:13",
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:15",
"src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:13",
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:12"
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:18"
]
},
{
@@ -249,7 +256,7 @@
"call": "Checks passed",
"key": "Checks passed",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:40",
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:51",
"src/podkop/tabs/diagnostic/helpers/getMeta.ts:13"
]
},
@@ -1178,6 +1185,13 @@
"src/podkop/tabs/diagnostic/initController.ts:502"
]
},
{
"call": "Legacy runtime paths",
"key": "Legacy runtime paths",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:151"
]
},
{
"call": "List must be a direct .lst URL or a local .lst path",
"key": "List must be a direct .lst URL or a local .lst path",
@@ -1213,6 +1227,13 @@
"../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/settings.js:418"
]
},
{
"call": "luci-app-zapret installed",
"key": "luci-app-zapret installed",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:141"
]
},
{
"call": "Main DNS",
"key": "Main DNS",
@@ -1299,6 +1320,13 @@
"../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1786"
]
},
{
"call": "NFQUEUE range",
"key": "NFQUEUE range",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:146"
]
},
{
"call": "NFQWS Strategy",
"key": "NFQWS Strategy",
@@ -1313,6 +1341,13 @@
"../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1129"
]
},
{
"call": "no",
"key": "no",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:8"
]
},
{
"call": "No other marking rules found",
"key": "No other marking rules found",
@@ -1324,7 +1359,6 @@
"call": "No rules use zapret",
"key": "No rules use zapret",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:52",
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:99"
]
},
@@ -1469,6 +1503,13 @@
"src/podkop/tabs/diagnostic/diagnostic.store.ts:153"
]
},
{
"call": "Podkop nfqws supervisors",
"key": "Podkop nfqws supervisors",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:119"
]
},
{
"call": "Podkop Plus manages the nfqws process lifecycle itself, so daemon mode is not allowed here.",
"key": "Podkop Plus manages the nfqws process lifecycle itself, so daemon mode is not allowed here.",
@@ -1490,6 +1531,20 @@
"../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/settings.js:361"
]
},
{
"call": "Podkop-managed nfqws is not ready",
"key": "Podkop-managed nfqws is not ready",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:58"
]
},
{
"call": "Podkop-managed nfqws processes",
"key": "Podkop-managed nfqws processes",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:108"
]
},
{
"call": "Port cannot be empty",
"key": "Port cannot be empty",
@@ -1504,6 +1559,20 @@
"../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1942"
]
},
{
"call": "Possible packet-level overlap",
"key": "Possible packet-level overlap",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:156"
]
},
{
"call": "Provider binary",
"key": "Provider binary",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:83"
]
},
{
"call": "Proxy Configuration URL",
"key": "Proxy Configuration URL",
@@ -1891,6 +1960,27 @@
"../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/settings.js:448"
]
},
{
"call": "Standalone zapret enabled",
"key": "Standalone zapret enabled",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:131"
]
},
{
"call": "Standalone zapret may overlap with Podkop Plus",
"key": "Standalone zapret may overlap with Podkop Plus",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:67"
]
},
{
"call": "Standalone zapret running",
"key": "Standalone zapret running",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:126"
]
},
{
"call": "Start Podkop Plus",
"key": "Start Podkop Plus",
@@ -1965,8 +2055,7 @@
"call": "There are rules using zapret",
"key": "There are rules using zapret",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:51",
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:76"
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:98"
]
},
{
@@ -2297,6 +2386,13 @@
"../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/settings.js:262"
]
},
{
"call": "yes",
"key": "yes",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:8"
]
},
{
"call": "You can select Output Network Interface, by default autodetect",
"key": "You can select Output Network Interface, by default autodetect",
@@ -2305,13 +2401,20 @@
]
},
{
"call": "Zapret (package not installed)",
"key": "Zapret (package not installed)",
"call": "Zapret (provider not available)",
"key": "Zapret (provider not available)",
"places": [
"../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:237",
"../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:284"
]
},
{
"call": "Zapret conflict detected",
"key": "Zapret conflict detected",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:61"
]
},
{
"call": "Zapret hostlist templates are not supported here because Podkop Plus does not expand them for per-rule NFQWS strategies.",
"key": "Zapret hostlist templates are not supported here because Podkop Plus does not expand them for per-rule NFQWS strategies.",
@@ -2320,20 +2423,24 @@
]
},
{
"call": "Zapret installed",
"key": "Zapret installed",
"call": "Zapret package installed",
"key": "Zapret package installed",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:45"
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:92"
]
},
{
"call": "Zapret not installed",
"key": "Zapret not installed",
"call": "Zapret provider is not available",
"key": "Zapret provider is not available",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:66",
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:71",
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:89",
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:94"
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:55"
]
},
{
"call": "Zapret provider is not installed",
"key": "Zapret provider is not installed",
"places": [
"src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:64"
]
}
]
+77 -18
View File
@@ -1,21 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2026 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PODKOP PLUS package.
# ushan0v <ushan0v@users.noreply.github.com>, 2026.
# Codex <codex@local>, 2026.
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PODKOP PLUS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-12 03:08+0300\n"
"PO-Revision-Date: 2026-04-12 03:08+0300\n"
"Last-Translator: ushan0v <ushan0v@users.noreply.github.com>\n"
"POT-Creation-Date: 2026-05-01 12:57+0300\n"
"PO-Revision-Date: 2026-05-01 12:57+0300\n"
"Last-Translator: Codex <codex@local>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:136
msgid "/etc/config/zapret present"
msgstr ""
#: src/podkop/tabs/dashboard/initController.ts:345
#: src/podkop/tabs/dashboard/initController.ts:356
#: src/podkop/tabs/dashboard/initController.ts:369
@@ -142,7 +146,7 @@ msgstr ""
#: src/podkop/tabs/diagnostic/checks/runNftCheck.ts:28
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:27
#: src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:25
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:24
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:30
msgid "Cannot receive checks result"
msgstr ""
@@ -151,7 +155,7 @@ msgstr ""
#: src/podkop/tabs/diagnostic/checks/runNftCheck.ts:13
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:15
#: src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:13
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:12
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:18
msgid "Checking, please wait"
msgstr ""
@@ -163,7 +167,7 @@ msgstr ""
msgid "Checks failed"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:40
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:51
#: src/podkop/tabs/diagnostic/helpers/getMeta.ts:13
msgid "Checks passed"
msgstr ""
@@ -709,6 +713,10 @@ msgstr ""
msgid "Latest"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:151
msgid "Legacy runtime paths"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1504
msgid "List must be a direct .lst URL or a local .lst path"
msgstr ""
@@ -729,6 +737,10 @@ msgstr ""
msgid "Log Level"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:141
msgid "luci-app-zapret installed"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:72
msgid "Main DNS"
msgstr ""
@@ -779,6 +791,10 @@ msgstr ""
msgid "Must be a number in the range of 50 - 1000"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:146
msgid "NFQUEUE range"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1617
msgid "NFQWS Strategy"
msgstr ""
@@ -787,11 +803,14 @@ msgstr ""
msgid "NFQWS strategy cannot be empty"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:8
msgid "no"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runNftCheck.ts:105
msgid "No other marking rules found"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:52
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:99
msgid "No rules use zapret"
msgstr ""
@@ -883,6 +902,10 @@ msgstr ""
msgid "Pending"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:119
msgid "Podkop nfqws supervisors"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1017
msgid "Podkop Plus manages the nfqws process lifecycle itself, so daemon mode is not allowed here."
msgstr ""
@@ -895,6 +918,14 @@ msgstr ""
msgid "Podkop Plus will not modify your DHCP configuration"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:58
msgid "Podkop-managed nfqws is not ready"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:108
msgid "Podkop-managed nfqws processes"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1949
msgid "Port cannot be empty"
msgstr ""
@@ -903,6 +934,14 @@ msgstr ""
msgid "Port for the local mixed proxy of this section"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:156
msgid "Possible packet-level overlap"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:83
msgid "Provider binary"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/node.js:31
msgid "Proxy Configuration URL"
msgstr ""
@@ -1125,6 +1164,18 @@ msgstr ""
msgid "Specify a local IP address to be excluded from routing"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:131
msgid "Standalone zapret enabled"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:67
msgid "Standalone zapret may overlap with Podkop Plus"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:126
msgid "Standalone zapret running"
msgstr ""
#: src/podkop/tabs/diagnostic/partials/renderAvailableActions.ts:69
msgid "Start Podkop Plus"
msgstr ""
@@ -1165,8 +1216,7 @@ msgstr ""
msgid "The NFQUEUE number is assigned by Podkop Plus for each rule and must not be overridden here."
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:51
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:76
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:98
msgid "There are rules using zapret"
msgstr ""
@@ -1369,26 +1419,35 @@ msgstr ""
msgid "YACD Secret Key"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:8
msgid "yes"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/settings.js:133
msgid "You can select Output Network Interface, by default autodetect"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:237
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:284
msgid "Zapret (package not installed)"
msgid "Zapret (provider not available)"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:61
msgid "Zapret conflict detected"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1008
msgid "Zapret hostlist templates are not supported here because Podkop Plus does not expand them for per-rule NFQWS strategies."
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:45
msgid "Zapret installed"
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:92
msgid "Zapret package installed"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:66
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:71
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:89
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:94
msgid "Zapret not installed"
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:55
msgid "Zapret provider is not available"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:64
msgid "Zapret provider is not installed"
msgstr ""
+58 -10
View File
@@ -1,15 +1,15 @@
# RU translations for PODKOP PLUS package.
# Copyright (C) 2026 THE PODKOP PLUS COPYRIGHT HOLDER
# This file is distributed under the same license as the PODKOP PLUS package.
# ushan0v, 2026.
# Codex, 2026.
#
msgid ""
msgstr ""
"Project-Id-Version: PODKOP PLUS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-12 06:08+0300\n"
"PO-Revision-Date: 2026-04-12 06:08+0300\n"
"Last-Translator: ushan0v\n"
"POT-Creation-Date: 2026-05-01 15:57+0300\n"
"PO-Revision-Date: 2026-05-01 15:57+0300\n"
"Last-Translator: Codex\n"
"Language-Team: none\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
@@ -17,6 +17,9 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
msgid "/etc/config/zapret present"
msgstr ""
msgid "✔ Running"
msgstr "✔ Работает"
@@ -503,6 +506,9 @@ msgstr "Ключевое слово не должно содержать про
msgid "Latest"
msgstr "Последняя"
msgid "Legacy runtime paths"
msgstr ""
msgid "List must be a direct .lst URL or a local .lst path"
msgstr "Список должен быть прямым URL на .lst или локальным путём к .lst"
@@ -518,6 +524,9 @@ msgstr "Локальный путь к набору правил sing-box"
msgid "Log Level"
msgstr "Уровень логов"
msgid "luci-app-zapret installed"
msgstr ""
msgid "Main DNS"
msgstr "Основной DNS"
@@ -554,12 +563,18 @@ msgstr "Наблюдаемые интерфейсы"
msgid "Must be a number in the range of 50 - 1000"
msgstr "Должно быть числом от 50 до 1000"
msgid "NFQUEUE range"
msgstr ""
msgid "NFQWS Strategy"
msgstr "Стратегия NFQWS"
msgid "NFQWS strategy cannot be empty"
msgstr "Стратегия NFQWS не может быть пустой"
msgid "no"
msgstr ""
msgid "No other marking rules found"
msgstr "Другие правила маркировки не найдены"
@@ -620,6 +635,9 @@ msgstr "Путь должен заканчиваться на cache.db"
msgid "Pending"
msgstr "Ожидает запуска"
msgid "Podkop nfqws supervisors"
msgstr ""
msgid "Podkop Plus manages the nfqws process lifecycle itself, so daemon mode is not allowed here."
msgstr "Podkop Plus сам управляет жизненным циклом nfqws, поэтому режим daemon здесь запрещён."
@@ -629,12 +647,24 @@ msgstr "Настройки Podkop Plus"
msgid "Podkop Plus will not modify your DHCP configuration"
msgstr "Podkop Plus не будет изменять вашу конфигурацию DHCP"
msgid "Podkop-managed nfqws is not ready"
msgstr ""
msgid "Podkop-managed nfqws processes"
msgstr ""
msgid "Port cannot be empty"
msgstr "Порт не может быть пустым"
msgid "Port for the local mixed proxy of this section"
msgstr "Порт локального смешанного прокси для этой секции"
msgid "Possible packet-level overlap"
msgstr ""
msgid "Provider binary"
msgstr ""
msgid "Proxy Configuration URL"
msgstr "URL конфигурации прокси"
@@ -800,6 +830,15 @@ msgstr "Сетевой интерфейс источника"
msgid "Specify a local IP address to be excluded from routing"
msgstr "Укажите локальный IP-адрес, который следует исключить из маршрутизации."
msgid "Standalone zapret enabled"
msgstr ""
msgid "Standalone zapret may overlap with Podkop Plus"
msgstr ""
msgid "Standalone zapret running"
msgstr ""
msgid "Start Podkop Plus"
msgstr "Запустить Podkop Plus"
@@ -962,17 +1001,26 @@ msgstr "Что Podkop Plus должен делать при совпадении
msgid "YACD Secret Key"
msgstr "Секретный ключ YACD"
msgid "yes"
msgstr ""
msgid "You can select Output Network Interface, by default autodetect"
msgstr "Вы можете выбрать выходной сетевой интерфейс, по умолчанию он определяется автоматически."
msgid "Zapret (package not installed)"
msgstr "Zapret (пакет не установлен)"
msgid "Zapret (provider not available)"
msgstr ""
msgid "Zapret conflict detected"
msgstr ""
msgid "Zapret hostlist templates are not supported here because Podkop Plus does not expand them for per-rule NFQWS strategies."
msgstr "Шаблоны hostlist zapret здесь не поддерживаются, потому что Podkop Plus не разворачивает их для per-rule стратегий NFQWS."
msgid "Zapret installed"
msgstr "Zapret установлен"
msgid "Zapret package installed"
msgstr ""
msgid "Zapret not installed"
msgstr "Zapret не установлен"
msgid "Zapret provider is not available"
msgstr ""
msgid "Zapret provider is not installed"
msgstr ""
@@ -2,6 +2,12 @@ import { DIAGNOSTICS_CHECKS_MAP } from './contstants';
import { PodkopShellMethods } from '../../../methods';
import { updateCheckStore } from './updateCheckStore';
type CheckState = 'success' | 'warning' | 'error';
function boolText(value: boolean) {
return value ? _('yes') : _('no');
}
export async function runZapretCheck() {
const { order, title, code } = DIAGNOSTICS_CHECKS_MAP.ZAPRET;
@@ -29,75 +35,126 @@ export async function runZapretCheck() {
throw new Error('Zapret checks failed');
}
const installed = Boolean(zapretStatus.data.installed);
const hasZapretRules = Number(zapretStatus.data.enabled_rule_count || 0) > 0;
const data = zapretStatus.data;
const providerAvailable = Boolean(data.provider_available ?? data.installed);
const packageInstalled = Boolean(data.package_installed);
const hasZapretRules = Number(data.enabled_rule_count || 0) > 0;
const ready = Boolean(data.ready);
const standaloneActive = Boolean(
data.standalone_service_running || data.standalone_service_enabled,
);
const queueOverlap = Boolean(data.queue_overlap);
const legacyRuntimePresent = Boolean(data.legacy_runtime_present);
const standaloneConflict = Boolean(data.standalone_conflict);
if (installed) {
updateCheckStore({
order,
code,
title,
description: _('Checks passed'),
state: 'success',
items: [
{
state: 'success',
key: _('Zapret installed'),
value: '',
},
{
state: 'success',
key: hasZapretRules
? _('There are rules using zapret')
: _('No rules use zapret'),
value: '',
},
],
});
let state: CheckState = 'success';
let description = _('Checks passed');
return;
}
if (hasZapretRules) {
updateCheckStore({
order,
code,
title,
description: _('Zapret not installed'),
state: 'error',
items: [
{
state: 'error',
key: _('Zapret not installed'),
value: '',
},
{
state: 'error',
key: _('There are rules using zapret'),
value: '',
},
],
});
return;
if (hasZapretRules && !providerAvailable) {
state = 'error';
description = _('Zapret provider is not available');
} else if (hasZapretRules && !ready) {
state = 'error';
description = _('Podkop-managed nfqws is not ready');
} else if (queueOverlap || legacyRuntimePresent) {
state = 'error';
description = _('Zapret conflict detected');
} else if (!hasZapretRules && !providerAvailable) {
state = 'warning';
description = _('Zapret provider is not installed');
} else if (standaloneConflict || standaloneActive) {
state = 'warning';
description = _('Standalone zapret may overlap with Podkop Plus');
}
updateCheckStore({
order,
code,
title,
description: _('Zapret not installed'),
state: 'warning',
description,
state,
items: [
{
state: 'warning',
key: _('Zapret not installed'),
value: '',
state: providerAvailable
? 'success'
: hasZapretRules
? 'error'
: 'warning',
key: _('Provider binary'),
value: data.provider_path || '/opt/zapret/nfq/nfqws',
},
{
state: 'success',
key: _('No rules use zapret'),
value: '',
state: packageInstalled
? 'success'
: providerAvailable
? 'warning'
: 'error',
key: _('Zapret package installed'),
value: boolText(packageInstalled),
},
{
state: hasZapretRules ? 'success' : 'warning',
key: hasZapretRules
? _('There are rules using zapret')
: _('No rules use zapret'),
value: `${Number(data.enabled_rule_count || 0)}`,
},
{
state:
!hasZapretRules ||
data.running_process_count === data.expected_process_count
? 'success'
: 'error',
key: _('Podkop-managed nfqws processes'),
value: `${Number(data.running_process_count || 0)} / ${Number(
data.expected_process_count || 0,
)}`,
},
{
state:
!hasZapretRules ||
data.supervisor_process_count === data.expected_process_count
? 'success'
: 'error',
key: _('Podkop nfqws supervisors'),
value: `${Number(data.supervisor_process_count || 0)} / ${Number(
data.expected_process_count || 0,
)}`,
},
{
state: data.standalone_service_running ? 'warning' : 'success',
key: _('Standalone zapret running'),
value: boolText(Boolean(data.standalone_service_running)),
},
{
state: data.standalone_service_enabled ? 'warning' : 'success',
key: _('Standalone zapret enabled'),
value: boolText(Boolean(data.standalone_service_enabled)),
},
{
state: data.standalone_config_present ? 'warning' : 'success',
key: _('/etc/config/zapret present'),
value: boolText(Boolean(data.standalone_config_present)),
},
{
state: data.luci_app_installed ? 'warning' : 'success',
key: _('luci-app-zapret installed'),
value: boolText(Boolean(data.luci_app_installed)),
},
{
state: queueOverlap ? 'error' : 'success',
key: _('NFQUEUE range'),
value: `${Number(data.queue_base || 0)}-${Number(data.queue_range_end || 0)}`,
},
{
state: legacyRuntimePresent ? 'error' : 'success',
key: _('Legacy runtime paths'),
value: boolText(legacyRuntimePresent),
},
{
state: standaloneConflict ? 'warning' : 'success',
key: _('Possible packet-level overlap'),
value: boolText(standaloneConflict),
},
],
});
+16
View File
@@ -196,19 +196,35 @@ export namespace Podkop {
export interface GetZapretStatus {
installed: 0 | 1;
package_installed: 0 | 1;
provider_available: 0 | 1;
provider_path: string;
files_available: 0 | 1;
ipset_available: 0 | 1;
version: string;
configured: 0 | 1;
enabled_rule_count: number;
expected_process_count: number;
running_process_count: number;
supervisor_process_count: number;
standalone_service_enabled: 0 | 1;
standalone_service_running: 0 | 1;
standalone_config_present: 0 | 1;
standalone_conflict: 0 | 1;
luci_app_installed: 0 | 1;
queue_base: number;
queue_range_end: number;
queue_overlap: 0 | 1;
legacy_runtime_present: 0 | 1;
ready: 0 | 1;
conflict: 0 | 1;
status_message: string;
}
export interface ZapretCheckResult {
zapret_installed: 0 | 1;
zapret_package_installed: 0 | 1;
zapret_provider_path: string;
}
export interface GetClashApiProxyLatency {
@@ -2935,6 +2935,9 @@ async function runFakeIPCheck() {
}
// src/podkop/tabs/diagnostic/checks/runZapretCheck.ts
function boolText(value) {
return value ? _("yes") : _("no");
}
async function runZapretCheck() {
const { order, title, code } = DIAGNOSTICS_CHECKS_MAP.ZAPRET;
updateCheckStore({
@@ -2957,68 +2960,105 @@ async function runZapretCheck() {
});
throw new Error("Zapret checks failed");
}
const installed = Boolean(zapretStatus.data.installed);
const hasZapretRules = Number(zapretStatus.data.enabled_rule_count || 0) > 0;
if (installed) {
updateCheckStore({
order,
code,
title,
description: _("Checks passed"),
state: "success",
items: [
{
state: "success",
key: _("Zapret installed"),
value: ""
},
{
state: "success",
key: hasZapretRules ? _("There are rules using zapret") : _("No rules use zapret"),
value: ""
}
]
});
return;
}
if (hasZapretRules) {
updateCheckStore({
order,
code,
title,
description: _("Zapret not installed"),
state: "error",
items: [
{
state: "error",
key: _("Zapret not installed"),
value: ""
},
{
state: "error",
key: _("There are rules using zapret"),
value: ""
}
]
});
return;
const data = zapretStatus.data;
const providerAvailable = Boolean(data.provider_available ?? data.installed);
const packageInstalled = Boolean(data.package_installed);
const hasZapretRules = Number(data.enabled_rule_count || 0) > 0;
const ready = Boolean(data.ready);
const standaloneActive = Boolean(
data.standalone_service_running || data.standalone_service_enabled
);
const queueOverlap = Boolean(data.queue_overlap);
const legacyRuntimePresent = Boolean(data.legacy_runtime_present);
const standaloneConflict = Boolean(data.standalone_conflict);
let state = "success";
let description = _("Checks passed");
if (hasZapretRules && !providerAvailable) {
state = "error";
description = _("Zapret provider is not available");
} else if (hasZapretRules && !ready) {
state = "error";
description = _("Podkop-managed nfqws is not ready");
} else if (queueOverlap || legacyRuntimePresent) {
state = "error";
description = _("Zapret conflict detected");
} else if (!hasZapretRules && !providerAvailable) {
state = "warning";
description = _("Zapret provider is not installed");
} else if (standaloneConflict || standaloneActive) {
state = "warning";
description = _("Standalone zapret may overlap with Podkop Plus");
}
updateCheckStore({
order,
code,
title,
description: _("Zapret not installed"),
state: "warning",
description,
state,
items: [
{
state: "warning",
key: _("Zapret not installed"),
value: ""
state: providerAvailable ? "success" : hasZapretRules ? "error" : "warning",
key: _("Provider binary"),
value: data.provider_path || "/opt/zapret/nfq/nfqws"
},
{
state: "success",
key: _("No rules use zapret"),
value: ""
state: packageInstalled ? "success" : providerAvailable ? "warning" : "error",
key: _("Zapret package installed"),
value: boolText(packageInstalled)
},
{
state: hasZapretRules ? "success" : "warning",
key: hasZapretRules ? _("There are rules using zapret") : _("No rules use zapret"),
value: `${Number(data.enabled_rule_count || 0)}`
},
{
state: !hasZapretRules || data.running_process_count === data.expected_process_count ? "success" : "error",
key: _("Podkop-managed nfqws processes"),
value: `${Number(data.running_process_count || 0)} / ${Number(
data.expected_process_count || 0
)}`
},
{
state: !hasZapretRules || data.supervisor_process_count === data.expected_process_count ? "success" : "error",
key: _("Podkop nfqws supervisors"),
value: `${Number(data.supervisor_process_count || 0)} / ${Number(
data.expected_process_count || 0
)}`
},
{
state: data.standalone_service_running ? "warning" : "success",
key: _("Standalone zapret running"),
value: boolText(Boolean(data.standalone_service_running))
},
{
state: data.standalone_service_enabled ? "warning" : "success",
key: _("Standalone zapret enabled"),
value: boolText(Boolean(data.standalone_service_enabled))
},
{
state: data.standalone_config_present ? "warning" : "success",
key: _("/etc/config/zapret present"),
value: boolText(Boolean(data.standalone_config_present))
},
{
state: data.luci_app_installed ? "warning" : "success",
key: _("luci-app-zapret installed"),
value: boolText(Boolean(data.luci_app_installed))
},
{
state: queueOverlap ? "error" : "success",
key: _("NFQUEUE range"),
value: `${Number(data.queue_base || 0)}-${Number(data.queue_range_end || 0)}`
},
{
state: legacyRuntimePresent ? "error" : "success",
key: _("Legacy runtime paths"),
value: boolText(legacyRuntimePresent)
},
{
state: standaloneConflict ? "warning" : "success",
key: _("Possible packet-level overlap"),
value: boolText(standaloneConflict)
}
]
});
@@ -234,7 +234,7 @@ function getActionOptionLabel(action) {
case "zapret":
return isZapretInstalledForUi()
? "Zapret"
: _("Zapret (package not installed)");
: _("Zapret (provider not available)");
case "proxy":
default:
return "Proxy";
@@ -281,7 +281,7 @@ function disableUnavailableZapretOption(node) {
Array.from(select.options).forEach((option) => {
if (option.value === "zapret") {
option.disabled = true;
option.textContent = _("Zapret (package not installed)");
option.textContent = _("Zapret (provider not available)");
}
});
}
+58 -10
View File
@@ -1,15 +1,15 @@
# RU translations for PODKOP PLUS package.
# Copyright (C) 2026 THE PODKOP PLUS COPYRIGHT HOLDER
# This file is distributed under the same license as the PODKOP PLUS package.
# ushan0v, 2026.
# Codex, 2026.
#
msgid ""
msgstr ""
"Project-Id-Version: PODKOP PLUS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-12 06:08+0300\n"
"PO-Revision-Date: 2026-04-12 06:08+0300\n"
"Last-Translator: ushan0v\n"
"POT-Creation-Date: 2026-05-01 15:57+0300\n"
"PO-Revision-Date: 2026-05-01 15:57+0300\n"
"Last-Translator: Codex\n"
"Language-Team: none\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
@@ -17,6 +17,9 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
msgid "/etc/config/zapret present"
msgstr ""
msgid "✔ Running"
msgstr "✔ Работает"
@@ -503,6 +506,9 @@ msgstr "Ключевое слово не должно содержать про
msgid "Latest"
msgstr "Последняя"
msgid "Legacy runtime paths"
msgstr ""
msgid "List must be a direct .lst URL or a local .lst path"
msgstr "Список должен быть прямым URL на .lst или локальным путём к .lst"
@@ -518,6 +524,9 @@ msgstr "Локальный путь к набору правил sing-box"
msgid "Log Level"
msgstr "Уровень логов"
msgid "luci-app-zapret installed"
msgstr ""
msgid "Main DNS"
msgstr "Основной DNS"
@@ -554,12 +563,18 @@ msgstr "Наблюдаемые интерфейсы"
msgid "Must be a number in the range of 50 - 1000"
msgstr "Должно быть числом от 50 до 1000"
msgid "NFQUEUE range"
msgstr ""
msgid "NFQWS Strategy"
msgstr "Стратегия NFQWS"
msgid "NFQWS strategy cannot be empty"
msgstr "Стратегия NFQWS не может быть пустой"
msgid "no"
msgstr ""
msgid "No other marking rules found"
msgstr "Другие правила маркировки не найдены"
@@ -620,6 +635,9 @@ msgstr "Путь должен заканчиваться на cache.db"
msgid "Pending"
msgstr "Ожидает запуска"
msgid "Podkop nfqws supervisors"
msgstr ""
msgid "Podkop Plus manages the nfqws process lifecycle itself, so daemon mode is not allowed here."
msgstr "Podkop Plus сам управляет жизненным циклом nfqws, поэтому режим daemon здесь запрещён."
@@ -629,12 +647,24 @@ msgstr "Настройки Podkop Plus"
msgid "Podkop Plus will not modify your DHCP configuration"
msgstr "Podkop Plus не будет изменять вашу конфигурацию DHCP"
msgid "Podkop-managed nfqws is not ready"
msgstr ""
msgid "Podkop-managed nfqws processes"
msgstr ""
msgid "Port cannot be empty"
msgstr "Порт не может быть пустым"
msgid "Port for the local mixed proxy of this section"
msgstr "Порт локального смешанного прокси для этой секции"
msgid "Possible packet-level overlap"
msgstr ""
msgid "Provider binary"
msgstr ""
msgid "Proxy Configuration URL"
msgstr "URL конфигурации прокси"
@@ -800,6 +830,15 @@ msgstr "Сетевой интерфейс источника"
msgid "Specify a local IP address to be excluded from routing"
msgstr "Укажите локальный IP-адрес, который следует исключить из маршрутизации."
msgid "Standalone zapret enabled"
msgstr ""
msgid "Standalone zapret may overlap with Podkop Plus"
msgstr ""
msgid "Standalone zapret running"
msgstr ""
msgid "Start Podkop Plus"
msgstr "Запустить Podkop Plus"
@@ -962,17 +1001,26 @@ msgstr "Что Podkop Plus должен делать при совпадении
msgid "YACD Secret Key"
msgstr "Секретный ключ YACD"
msgid "yes"
msgstr ""
msgid "You can select Output Network Interface, by default autodetect"
msgstr "Вы можете выбрать выходной сетевой интерфейс, по умолчанию он определяется автоматически."
msgid "Zapret (package not installed)"
msgstr "Zapret (пакет не установлен)"
msgid "Zapret (provider not available)"
msgstr ""
msgid "Zapret conflict detected"
msgstr ""
msgid "Zapret hostlist templates are not supported here because Podkop Plus does not expand them for per-rule NFQWS strategies."
msgstr "Шаблоны hostlist zapret здесь не поддерживаются, потому что Podkop Plus не разворачивает их для per-rule стратегий NFQWS."
msgid "Zapret installed"
msgstr "Zapret установлен"
msgid "Zapret package installed"
msgstr ""
msgid "Zapret not installed"
msgstr "Zapret не установлен"
msgid "Zapret provider is not available"
msgstr ""
msgid "Zapret provider is not installed"
msgstr ""
@@ -1,21 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2026 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PODKOP PLUS package.
# ushan0v <ushan0v@users.noreply.github.com>, 2026.
# Codex <codex@local>, 2026.
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PODKOP PLUS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-12 03:08+0300\n"
"PO-Revision-Date: 2026-04-12 03:08+0300\n"
"Last-Translator: ushan0v <ushan0v@users.noreply.github.com>\n"
"POT-Creation-Date: 2026-05-01 12:57+0300\n"
"PO-Revision-Date: 2026-05-01 12:57+0300\n"
"Last-Translator: Codex <codex@local>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:136
msgid "/etc/config/zapret present"
msgstr ""
#: src/podkop/tabs/dashboard/initController.ts:345
#: src/podkop/tabs/dashboard/initController.ts:356
#: src/podkop/tabs/dashboard/initController.ts:369
@@ -142,7 +146,7 @@ msgstr ""
#: src/podkop/tabs/diagnostic/checks/runNftCheck.ts:28
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:27
#: src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:25
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:24
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:30
msgid "Cannot receive checks result"
msgstr ""
@@ -151,7 +155,7 @@ msgstr ""
#: src/podkop/tabs/diagnostic/checks/runNftCheck.ts:13
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:15
#: src/podkop/tabs/diagnostic/checks/runSingBoxCheck.ts:13
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:12
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:18
msgid "Checking, please wait"
msgstr ""
@@ -163,7 +167,7 @@ msgstr ""
msgid "Checks failed"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:40
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:51
#: src/podkop/tabs/diagnostic/helpers/getMeta.ts:13
msgid "Checks passed"
msgstr ""
@@ -709,6 +713,10 @@ msgstr ""
msgid "Latest"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:151
msgid "Legacy runtime paths"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1504
msgid "List must be a direct .lst URL or a local .lst path"
msgstr ""
@@ -729,6 +737,10 @@ msgstr ""
msgid "Log Level"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:141
msgid "luci-app-zapret installed"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:72
msgid "Main DNS"
msgstr ""
@@ -779,6 +791,10 @@ msgstr ""
msgid "Must be a number in the range of 50 - 1000"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:146
msgid "NFQUEUE range"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1617
msgid "NFQWS Strategy"
msgstr ""
@@ -787,11 +803,14 @@ msgstr ""
msgid "NFQWS strategy cannot be empty"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:8
msgid "no"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runNftCheck.ts:105
msgid "No other marking rules found"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:52
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:99
msgid "No rules use zapret"
msgstr ""
@@ -883,6 +902,10 @@ msgstr ""
msgid "Pending"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:119
msgid "Podkop nfqws supervisors"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1017
msgid "Podkop Plus manages the nfqws process lifecycle itself, so daemon mode is not allowed here."
msgstr ""
@@ -895,6 +918,14 @@ msgstr ""
msgid "Podkop Plus will not modify your DHCP configuration"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:58
msgid "Podkop-managed nfqws is not ready"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:108
msgid "Podkop-managed nfqws processes"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1949
msgid "Port cannot be empty"
msgstr ""
@@ -903,6 +934,14 @@ msgstr ""
msgid "Port for the local mixed proxy of this section"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:156
msgid "Possible packet-level overlap"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:83
msgid "Provider binary"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/node.js:31
msgid "Proxy Configuration URL"
msgstr ""
@@ -1125,6 +1164,18 @@ msgstr ""
msgid "Specify a local IP address to be excluded from routing"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:131
msgid "Standalone zapret enabled"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:67
msgid "Standalone zapret may overlap with Podkop Plus"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:126
msgid "Standalone zapret running"
msgstr ""
#: src/podkop/tabs/diagnostic/partials/renderAvailableActions.ts:69
msgid "Start Podkop Plus"
msgstr ""
@@ -1165,8 +1216,7 @@ msgstr ""
msgid "The NFQUEUE number is assigned by Podkop Plus for each rule and must not be overridden here."
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:51
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:76
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:98
msgid "There are rules using zapret"
msgstr ""
@@ -1369,26 +1419,35 @@ msgstr ""
msgid "YACD Secret Key"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:8
msgid "yes"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/settings.js:133
msgid "You can select Output Network Interface, by default autodetect"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:237
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:284
msgid "Zapret (package not installed)"
msgid "Zapret (provider not available)"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:61
msgid "Zapret conflict detected"
msgstr ""
#: ../luci-app-podkop-plus/htdocs/luci-static/resources/view/podkop/section.js:1008
msgid "Zapret hostlist templates are not supported here because Podkop Plus does not expand them for per-rule NFQWS strategies."
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:45
msgid "Zapret installed"
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:92
msgid "Zapret package installed"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:66
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:71
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:89
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:94
msgid "Zapret not installed"
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:55
msgid "Zapret provider is not available"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runZapretCheck.ts:64
msgid "Zapret provider is not installed"
msgstr ""
+9 -9
View File
@@ -4402,7 +4402,7 @@ get_zapret_status() {
}
neutralize_zapret_defaults() {
log "Standalone zapret is no longer neutralized automatically; Podkop Plus uses an independent runtime and NFQUEUE range."
log "Standalone zapret is not neutralized automatically; Podkop Plus uses /opt/zapret/nfq/nfqws as an external provider and manages only its own NFQUEUE range."
}
check_zapret_runtime() {
@@ -5061,9 +5061,9 @@ global_check() {
zapret_installed=$(echo "$zapret_check_json" | jq -r '.zapret_installed // 0')
if [ "$zapret_installed" -eq 1 ]; then
print_global "✅ Zapret runtime installed"
else
print_global "❌ Zapret runtime installed"
print_global "✅ Zapret provider available"
else
print_global "❌ Zapret provider available"
fi
else
print_global "❌ Failed to get zapret info"
@@ -5212,10 +5212,10 @@ global_check() {
if [ -x /etc/init.d/zapret ] && /etc/init.d/zapret status >/dev/null 2>&1; then
print_global "━━━━━━━━━━━━━━━━━━━━━━━━━━━"
print_global "ℹ️ Standalone zapret service is active. Podkop Plus uses its own runtime and NFQUEUE range, so both services can work in parallel."
print_global "⚠️ Standalone zapret service is active. Podkop Plus uses separate queues, but packet-level policy overlap is possible."
elif [ -x /etc/init.d/zapret ] && /etc/init.d/zapret enabled >/dev/null 2>&1; then
print_global "━━━━━━━━━━━━━━━━━━━━━━━━━━━"
print_global "ℹ️ Standalone zapret autostart is enabled. Podkop Plus keeps its embedded zapret runtime independent from the standalone service."
print_global "⚠️ Standalone zapret autostart is enabled. Podkop Plus will not modify /etc/config/zapret."
fi
print_global "━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -5270,9 +5270,9 @@ Available commands:
check_logs Show Podkop Plus logs from system journal
check_sing_box_logs Show sing-box logs
check_fakeip Test FakeIP on router
check_zapret_runtime Check Podkop-managed zapret runtime state
check_zapret_runtime Check external zapret provider state
neutralize_zapret_defaults
Compatibility no-op; Podkop Plus keeps its zapret runtime independent
Compatibility no-op; Podkop Plus does not manage standalone zapret
clash_api Clash API interface for managing proxies and groups
show_config Display current Podkop Plus configuration
show_version Show Podkop Plus version
@@ -5281,7 +5281,7 @@ Available commands:
show_system_info Show system information
get_status Get Podkop Plus service status
get_sing_box_status Get sing-box service status
get_zapret_status Get Podkop-managed zapret runtime status
get_zapret_status Get zapret provider and Podkop-managed nfqws status
get_system_info Get system information in JSON format
check_dns_available Check DNS server availability
global_check Run global system check