Merge pull request #232 from itdoginfo/fix/change_json_outbound_validation

small pack of fixes
This commit is contained in:
Kirill Sobakin
2025-10-26 16:07:47 +03:00
committed by GitHub
10 changed files with 42 additions and 88 deletions

View File

@@ -397,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"
]
},
@@ -526,7 +520,8 @@
"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:58"
]
},
{
@@ -611,7 +606,7 @@
"call": "Invalid JSON format",
"key": "Invalid JSON format",
"places": [
"src/validators/validateOutboundJson.ts:19"
"src/validators/validateOutboundJson.ts:9"
]
},
{
@@ -884,8 +879,9 @@
"call": "Not responding",
"key": "Not responding",
"places": [
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:59",
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:79"
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:74",
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:80",
"src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:99"
]
},
{
@@ -920,13 +916,6 @@
"../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",
@@ -1588,7 +1577,7 @@
"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",

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PODKOP\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-25 22:08+0300\n"
"PO-Revision-Date: 2025-10-25 22:08+0300\n"
"POT-Creation-Date: 2025-10-26 12:56+0200\n"
"PO-Revision-Date: 2025-10-26 12:56+0200\n"
"Last-Translator: divocat <divocatt@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
@@ -250,9 +250,6 @@ 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 ""
@@ -324,6 +321,7 @@ msgid "Failed to execute!"
msgstr ""
#: src/podkop/methods/custom/getDashboardSections.ts:117
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:58
msgid "Fastest"
msgstr ""
@@ -372,7 +370,7 @@ msgstr ""
msgid "Invalid IP address"
msgstr ""
#: src/validators/validateOutboundJson.ts:19
#: src/validators/validateOutboundJson.ts:9
msgid "Invalid JSON format"
msgstr ""
@@ -528,8 +526,9 @@ msgstr ""
msgid "Not implement yet"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:59
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:79
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:74
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:80
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:99
msgid "Not responding"
msgstr ""
@@ -553,10 +552,6 @@ 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:443
msgid "Outdated"
msgstr ""
@@ -941,7 +936,7 @@ 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

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PODKOP\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-25 01:08+0300\n"
"PO-Revision-Date: 2025-10-25 01:08+0300\n"
"POT-Creation-Date: 2025-10-26 14:56+0200\n"
"PO-Revision-Date: 2025-10-26 14:56+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"
@@ -401,9 +398,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 "Устаревшая"

View File

@@ -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';

View File

@@ -415,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,
);

View File

@@ -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 {

View File

@@ -323,15 +323,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") };
@@ -4152,9 +4144,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
);
@@ -4745,6 +4735,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,

View File

@@ -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;

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PODKOP\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-25 01:08+0300\n"
"PO-Revision-Date: 2025-10-25 01:08+0300\n"
"POT-Creation-Date: 2025-10-26 14:56+0200\n"
"PO-Revision-Date: 2025-10-26 14:56+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"
@@ -401,9 +398,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 "Устаревшая"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PODKOP\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-25 22:08+0300\n"
"PO-Revision-Date: 2025-10-25 22:08+0300\n"
"POT-Creation-Date: 2025-10-26 12:56+0200\n"
"PO-Revision-Date: 2025-10-26 12:56+0200\n"
"Last-Translator: divocat <divocatt@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
@@ -250,9 +250,6 @@ 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 ""
@@ -324,6 +321,7 @@ msgid "Failed to execute!"
msgstr ""
#: src/podkop/methods/custom/getDashboardSections.ts:117
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:58
msgid "Fastest"
msgstr ""
@@ -372,7 +370,7 @@ msgstr ""
msgid "Invalid IP address"
msgstr ""
#: src/validators/validateOutboundJson.ts:19
#: src/validators/validateOutboundJson.ts:9
msgid "Invalid JSON format"
msgstr ""
@@ -528,8 +526,9 @@ msgstr ""
msgid "Not implement yet"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:59
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:79
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:74
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:80
#: src/podkop/tabs/diagnostic/checks/runSectionsCheck.ts:99
msgid "Not responding"
msgstr ""
@@ -553,10 +552,6 @@ 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:443
msgid "Outdated"
msgstr ""
@@ -941,7 +936,7 @@ 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