diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 017de56..152d09b 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -13,8 +13,8 @@ android { minSdk = 26 targetSdk = 35 // versionCode = major*1_000_000 + minor*10_000 + patch*100 + build - versionCode = 4_022_001 - versionName = "4.2.2+1" + versionCode = 4_023_001 + versionName = "4.2.3+1" vectorDrawables.useSupportLibrary = true ndk { abiFilters += listOf("arm64-v8a", "armeabi-v7a", "x86_64") diff --git a/cmd/vpnapp/main_windows.go b/cmd/vpnapp/main_windows.go index b03bf45..73f6e48 100644 --- a/cmd/vpnapp/main_windows.go +++ b/cmd/vpnapp/main_windows.go @@ -569,7 +569,7 @@ func (a *app) autoCheckUpdate() { } func openURL(raw string) error { - // Shared allowlist: shop + «Рекомендуемые сервисы» hosts only. + // Shared allowlist: shop + «Полезные ссылки» hosts only. normalized, err := apphost.LinkAllowed(raw) if err != nil { return err diff --git a/dist/navis-release/update.json b/dist/navis-release/update.json index 3a94e8e..407753d 100644 --- a/dist/navis-release/update.json +++ b/dist/navis-release/update.json @@ -1,26 +1,18 @@ { - "version": "4.2.2", - "notes": "4.2.2: светлая тема по умолчанию, ссылка поддержки Telegram → @evilfox100Bot", + "version": "4.2.3", + "notes": "4.2.3: на вкладке «Защита» только карточка EvilFox — убраны NordVPN/ExpressVPN/Surfshark и их ссылки", "platform": "windows-amd64", "os": "windows", "arch": "amd64", "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", - "sha256": "1cf00e87907714c299838ab1422ec593275e4dacfccca8e9914d21b2f4c51c87", + "sha256": "a39c2b3f26d4342409e28d9106d4ced2e63eec9e4a5968de7c61d16b5f72b639", "mandatory": false, "platforms": { - "windows-amd64": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", - "sha256": "1cf00e87907714c299838ab1422ec593275e4dacfccca8e9914d21b2f4c51c87", - "os": "windows", - "arch": "amd64" - }, - "darwin-arm64": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis", - "sha256": "01a40b1cce4e2fb3a38eb80f0815c295a00af11e4288f3b9e5c0b58ae336f28d", - "os": "darwin", - "arch": "arm64", - "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.dmg", - "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.app.zip" + "android": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/android/Navis.apk", + "sha256": "4416770bebe576eba42811990c4e4424f6722dea3a8513e6164dd34fc975b3cf", + "os": "android", + "arch": "universal" }, "darwin-amd64": { "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis", @@ -30,6 +22,14 @@ "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.dmg", "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.app.zip" }, + "darwin-arm64": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis", + "sha256": "01a40b1cce4e2fb3a38eb80f0815c295a00af11e4288f3b9e5c0b58ae336f28d", + "os": "darwin", + "arch": "arm64", + "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.dmg", + "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.app.zip" + }, "darwin-universal": { "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis", "sha256": "d53dba8256fd6f7b62d1ce9bbad741af087ae44fec942bf2782b9c8f4e36cef2", @@ -38,11 +38,11 @@ "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.dmg", "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.app.zip" }, - "android": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/android/Navis.apk", - "sha256": "4416770bebe576eba42811990c4e4424f6722dea3a8513e6164dd34fc975b3cf", - "os": "android", - "arch": "universal" + "windows-amd64": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", + "sha256": "a39c2b3f26d4342409e28d9106d4ced2e63eec9e4a5968de7c61d16b5f72b639", + "os": "windows", + "arch": "amd64" } } } diff --git a/dist/navis-release/windows/EvilFox.exe b/dist/navis-release/windows/EvilFox.exe index 13c5a9e..373f5dd 100644 Binary files a/dist/navis-release/windows/EvilFox.exe and b/dist/navis-release/windows/EvilFox.exe differ diff --git a/dist/navis-release/windows/Navis.exe b/dist/navis-release/windows/Navis.exe index 13c5a9e..373f5dd 100644 Binary files a/dist/navis-release/windows/Navis.exe and b/dist/navis-release/windows/Navis.exe differ diff --git a/dist/navis-release/windows/evilfox-cli.exe b/dist/navis-release/windows/evilfox-cli.exe index 1013364..42ad652 100644 Binary files a/dist/navis-release/windows/evilfox-cli.exe and b/dist/navis-release/windows/evilfox-cli.exe differ diff --git a/dist/navis-release/windows/vpnclient.exe b/dist/navis-release/windows/vpnclient.exe index 1013364..42ad652 100644 Binary files a/dist/navis-release/windows/vpnclient.exe and b/dist/navis-release/windows/vpnclient.exe differ diff --git a/dist/update.json b/dist/update.json index 3a94e8e..407753d 100644 --- a/dist/update.json +++ b/dist/update.json @@ -1,26 +1,18 @@ { - "version": "4.2.2", - "notes": "4.2.2: светлая тема по умолчанию, ссылка поддержки Telegram → @evilfox100Bot", + "version": "4.2.3", + "notes": "4.2.3: на вкладке «Защита» только карточка EvilFox — убраны NordVPN/ExpressVPN/Surfshark и их ссылки", "platform": "windows-amd64", "os": "windows", "arch": "amd64", "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", - "sha256": "1cf00e87907714c299838ab1422ec593275e4dacfccca8e9914d21b2f4c51c87", + "sha256": "a39c2b3f26d4342409e28d9106d4ced2e63eec9e4a5968de7c61d16b5f72b639", "mandatory": false, "platforms": { - "windows-amd64": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", - "sha256": "1cf00e87907714c299838ab1422ec593275e4dacfccca8e9914d21b2f4c51c87", - "os": "windows", - "arch": "amd64" - }, - "darwin-arm64": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis", - "sha256": "01a40b1cce4e2fb3a38eb80f0815c295a00af11e4288f3b9e5c0b58ae336f28d", - "os": "darwin", - "arch": "arm64", - "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.dmg", - "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.app.zip" + "android": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/android/Navis.apk", + "sha256": "4416770bebe576eba42811990c4e4424f6722dea3a8513e6164dd34fc975b3cf", + "os": "android", + "arch": "universal" }, "darwin-amd64": { "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis", @@ -30,6 +22,14 @@ "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.dmg", "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.app.zip" }, + "darwin-arm64": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis", + "sha256": "01a40b1cce4e2fb3a38eb80f0815c295a00af11e4288f3b9e5c0b58ae336f28d", + "os": "darwin", + "arch": "arm64", + "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.dmg", + "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.app.zip" + }, "darwin-universal": { "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis", "sha256": "d53dba8256fd6f7b62d1ce9bbad741af087ae44fec942bf2782b9c8f4e36cef2", @@ -38,11 +38,11 @@ "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.dmg", "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.app.zip" }, - "android": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/android/Navis.apk", - "sha256": "4416770bebe576eba42811990c4e4424f6722dea3a8513e6164dd34fc975b3cf", - "os": "android", - "arch": "universal" + "windows-amd64": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", + "sha256": "a39c2b3f26d4342409e28d9106d4ced2e63eec9e4a5968de7c61d16b5f72b639", + "os": "windows", + "arch": "amd64" } } } diff --git a/internal/apphost/app.go b/internal/apphost/app.go index a27951e..6ef7281 100644 --- a/internal/apphost/app.go +++ b/internal/apphost/app.go @@ -470,14 +470,10 @@ func (a *App) AutoCheckUpdate() { } // allowedLinkHosts are the only hosts the UI may open in the default browser -// (shop / «Полезные ссылки» / provider cards in index.html). -// Competitor links are plain URLs without referral codes (Store policy). +// (shop / «Полезные ссылки» in index.html). var allowedLinkHosts = map[string]bool{ - "evilfox.win": true, - "t.me": true, - "nordvpn.com": true, - "expressvpn.com": true, - "surfshark.com": true, + "evilfox.win": true, + "t.me": true, } // LinkAllowed validates that raw is an http(s) URL pointing at one of the diff --git a/internal/appui/index.html b/internal/appui/index.html index 1bd1bb6..ac571ab 100644 --- a/internal/appui/index.html +++ b/internal/appui/index.html @@ -1159,13 +1159,8 @@ .traffic-fill.warn { background: linear-gradient(90deg, #d97706, #f59e0b); } .traffic-sub { font-size: .74rem; color: var(--muted); } - /* ==== Провайдеры (вкладка «Защита») ==== */ - .prov-grid { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 10px; - margin-bottom: 12px; - } + /* ==== EvilFox (вкладка «Защита») ==== */ + .prov-featured { margin-bottom: 12px; } .prov-card { position: relative; border: 1px solid var(--line); @@ -1191,7 +1186,7 @@ html[data-theme="dark"] .prov-card.ours { background: linear-gradient(150deg, rgba(34,211,238,.16), var(--surface-2) 70%); } - /* Бейдж «Рекомендуемый сервис» — первая строка карточки EvilFox. */ + /* Бейдж «Рекомендуемый» — первая строка карточки EvilFox. */ .prov-badge { align-self: flex-start; font-size: .64rem; @@ -1204,50 +1199,9 @@ padding: 3px 9px; box-shadow: 0 4px 10px rgba(251, 191, 36, .35); } - /* Приглушённая подпись «Сторонний сервис» на карточках конкурентов */ - .prov-tag { - font-size: .62rem; - font-weight: 700; - letter-spacing: .05em; - text-transform: uppercase; - color: var(--muted); - opacity: .8; - } .prov-gift { font-size: .72rem; font-weight: 700; color: var(--accent-deep); } html[data-theme="dark"] .prov-gift { color: var(--accent); } .prov-card .action { padding: 10px 12px; font-size: .84rem; } - .prov-go { - appearance: none; - border: 1px solid var(--line); - background: transparent; - color: var(--muted); - font: inherit; - font-size: .8rem; - font-weight: 700; - border-radius: 12px; - padding: 9px 12px; - cursor: pointer; - transition: color .15s, border-color .15s; - } - .prov-go:hover { color: var(--ink); border-color: var(--muted); } - .prov-ping { - appearance: none; - border: 0; - background: transparent; - color: var(--muted); - font: inherit; - font-size: .74rem; - font-weight: 700; - padding: 2px 0; - cursor: pointer; - text-align: center; - } - .prov-ping:hover { color: var(--accent-deep); } - .prov-ping:disabled { cursor: default; color: var(--muted); } - .prov-ping .val { font-variant-numeric: tabular-nums; } - .prov-ping.good .val { color: var(--ms-good); } - .prov-ping.mid .val { color: var(--ms-mid); } - @media (max-width: 560px) { .prov-grid { grid-template-columns: 1fr; } } /* ==== Добавление конфигурации ==== */ .key-box { @@ -1438,8 +1392,7 @@