Add site contacts/FAQ and accept AWG 2.0 / naive pastes in Add config.
ImportSubscription no longer requires only http(s): paste awg://, AWG .conf/JSON, or naive links; subscription parser also reads hosted AWG and Clash wireguard/naive. Site lists support emails and FAQ; Store listing texts/tools updated. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+20
-13
@@ -1379,6 +1379,11 @@
|
||||
gap: 8px;
|
||||
}
|
||||
.key-box h3 { font-family: Outfit, sans-serif; font-size: .95rem; letter-spacing: -.02em; margin: 0; }
|
||||
.key-box #subUrl {
|
||||
width: 100%; min-height: 64px; max-height: 160px; resize: vertical;
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||||
font-size: .8rem; line-height: 1.35;
|
||||
}
|
||||
.key-hint { margin: 0; font-size: .76rem; color: var(--muted); line-height: 1.4; }
|
||||
/* Статус конфигурации: 🟢 добавлена / 🔴 не добавлена (сам URL не показываем). */
|
||||
.key-status { margin: 0; font-size: .8rem; font-weight: 700; }
|
||||
@@ -1623,9 +1628,9 @@
|
||||
<section class="key-box" aria-label="Добавить конфигурацию" data-i18n-aria="add_config_aria">
|
||||
<h3 data-i18n="add_config_title">🔗 Добавить конфигурацию</h3>
|
||||
<p class="key-status" id="subStatus">🔴 Конфигурация не добавлена</p>
|
||||
<input id="subUrl" type="text" placeholder="https://" spellcheck="false" />
|
||||
<textarea id="subUrl" rows="3" placeholder="https://… или awg:// / naive / .conf" spellcheck="false"></textarea>
|
||||
<button class="action primary" id="subBtn" type="button" data-i18n="add_config_btn">Добавить конфигурацию</button>
|
||||
<p class="key-hint" data-i18n="add_config_hint">Вставьте URL-ссылку для подключения</p>
|
||||
<p class="key-hint" data-i18n="add_config_hint">http(s) URL подписки/файла — или вставьте awg://, AWG .conf, naive, hy2, vless…</p>
|
||||
<button class="key-link" id="buyKeyLink" type="button" data-i18n="where_url">Где взять URL-ссылку?</button>
|
||||
</section>
|
||||
|
||||
@@ -1910,7 +1915,7 @@
|
||||
<h4>14. Изменения</h4>
|
||||
<p>Мы можем обновлять эту политику. Актуальная версия доступна в приложении (Помощь) и на сайте. Продолжение использования после обновления означает ознакомление с новой редакцией.</p>
|
||||
<h4>15. Контакты</h4>
|
||||
<p>EvilFox · <code>https://evilfox.win/</code> · поддержка: <code>https://t.me/evilfox100Bot</code></p>
|
||||
<p>EvilFox · <code>https://evilfox.win/</code><br />Основная почта: <code>animegold3@gmail.com</code> · Резервная: <code>admin@evilfox.win</code> · Telegram: <code>https://t.me/evilfox100Bot</code></p>
|
||||
</div>
|
||||
<div class="legal-body" data-lang-block="en" hidden>
|
||||
<p><strong>Publisher:</strong> EvilFox. <strong>Effective date:</strong> August 2, 2026.</p>
|
||||
@@ -1949,7 +1954,7 @@
|
||||
<h4>14. Changes</h4>
|
||||
<p>We may update this policy. The current version is in the app (Help) and on the website. Continued use after an update means you have had the chance to review the new text.</p>
|
||||
<h4>15. Contact</h4>
|
||||
<p>EvilFox · <code>https://evilfox.win/</code> · support: <code>https://t.me/evilfox100Bot</code></p>
|
||||
<p>EvilFox · <code>https://evilfox.win/</code><br />Primary: <code>animegold3@gmail.com</code> · Backup: <code>admin@evilfox.win</code> · Telegram: <code>https://t.me/evilfox100Bot</code></p>
|
||||
</div>
|
||||
</details>
|
||||
|
||||
@@ -1976,7 +1981,7 @@
|
||||
<h4>9. Применимое право</h4>
|
||||
<p>Эти Условия толкуются по законам страны вашего проживания, если иное не требуется императивными нормами. Для потребителей в ЕС сохраняются обязательные права по праву страны проживания.</p>
|
||||
<h4>10. Контакты</h4>
|
||||
<p>EvilFox · <code>https://evilfox.win/</code> · <code>https://t.me/evilfox100Bot</code></p>
|
||||
<p>EvilFox · <code>https://evilfox.win/</code><br />Основная: <code>animegold3@gmail.com</code> · Резервная: <code>admin@evilfox.win</code> · Telegram: <code>https://t.me/evilfox100Bot</code></p>
|
||||
</div>
|
||||
<div class="legal-body" data-lang-block="en" hidden>
|
||||
<p><strong>Publisher:</strong> EvilFox. <strong>Effective date:</strong> August 2, 2026.</p>
|
||||
@@ -1999,7 +2004,7 @@
|
||||
<h4>9. Governing law</h4>
|
||||
<p>These Terms are interpreted under the laws of your country of residence unless mandatory rules require otherwise. EU consumers keep mandatory rights under the law of their country of residence.</p>
|
||||
<h4>10. Contact</h4>
|
||||
<p>EvilFox · <code>https://evilfox.win/</code> · <code>https://t.me/evilfox100Bot</code></p>
|
||||
<p>EvilFox · <code>https://evilfox.win/</code><br />Primary: <code>animegold3@gmail.com</code> · Backup: <code>admin@evilfox.win</code> · Telegram: <code>https://t.me/evilfox100Bot</code></p>
|
||||
</div>
|
||||
</details>
|
||||
|
||||
@@ -2142,7 +2147,7 @@
|
||||
offer_text: "🎁 3 дня бесплатного доступа",
|
||||
page_profiles: "Мои серверы", add_config_aria: "Добавить конфигурацию",
|
||||
add_config_title: "🔗 Добавить конфигурацию", add_config_btn: "Добавить конфигурацию",
|
||||
add_config_hint: "Вставьте URL-ссылку для подключения", where_url: "Где взять URL-ссылку?",
|
||||
add_config_hint: "http(s) URL подписки/файла — или вставьте awg://, AWG .conf, naive, hy2, vless…", where_url: "Где взять URL-ссылку?",
|
||||
servers_title: "🌍 Серверы", ping_btn: "Пинг", best_btn: "Выбрать лучший",
|
||||
best_btn_title: "Выбрать сервер с наименьшим пингом",
|
||||
account_info: "Информация об аккаунте", expires_label: "Действует до",
|
||||
@@ -2233,8 +2238,8 @@
|
||||
meta_opening_site: "Открываю evilfox.win…", meta_opened: "Открыто в браузере",
|
||||
meta_open_fail: "Не удалось открыть ссылку",
|
||||
meta_opening_named: "Открываю {name}…",
|
||||
svc_site: "Сайт", svc_support: "Поддержка: Telegram",
|
||||
meta_need_url: "Вставьте URL-ссылку для подключения",
|
||||
svc_site: "Сайт", svc_mail: "Основная почта", svc_mail_backup: "Резервная почта", svc_support: "Поддержка: Telegram",
|
||||
meta_need_url: "Вставьте URL или конфигурацию (AWG / naive / hy2…)",
|
||||
meta_adding_config: "Добавление конфигурации…",
|
||||
meta_picking_best: "подбираю оптимальный сервер…",
|
||||
import_ok: "Конфигурация добавлена · серверов: {n}",
|
||||
@@ -2266,7 +2271,7 @@
|
||||
offer_text: "🎁 3 days free access",
|
||||
page_profiles: "My servers", add_config_aria: "Add configuration",
|
||||
add_config_title: "🔗 Add configuration", add_config_btn: "Add configuration",
|
||||
add_config_hint: "Paste a connection URL", where_url: "Where do I get a URL?",
|
||||
add_config_hint: "http(s) subscription/file URL — or paste awg://, AWG .conf, naive, hy2, vless…", where_url: "Where do I get a URL?",
|
||||
servers_title: "🌍 Servers", ping_btn: "Ping", best_btn: "Pick best",
|
||||
best_btn_title: "Select the server with the lowest ping",
|
||||
account_info: "Account info", expires_label: "Valid until",
|
||||
@@ -2357,8 +2362,8 @@
|
||||
meta_opening_site: "Opening evilfox.win…", meta_opened: "Opened in browser",
|
||||
meta_open_fail: "Could not open link",
|
||||
meta_opening_named: "Opening {name}…",
|
||||
svc_site: "Website", svc_support: "Support: Telegram",
|
||||
meta_need_url: "Paste a connection URL",
|
||||
svc_site: "Website", svc_mail: "Primary email", svc_mail_backup: "Backup email", svc_support: "Support: Telegram",
|
||||
meta_need_url: "Paste a URL or config (AWG / naive / hy2…)",
|
||||
meta_adding_config: "Adding configuration…",
|
||||
meta_picking_best: "picking optimal server…",
|
||||
import_ok: "Configuration added · servers: {n}",
|
||||
@@ -2777,6 +2782,8 @@
|
||||
// (internal/apphost/app.go → allowedLinkHosts).
|
||||
const RECOMMENDED_SERVICES = [
|
||||
{ icon: "🌐", nameKey: "svc_site", url: "https://evilfox.win/" },
|
||||
{ icon: "✉️", nameKey: "svc_mail", url: "mailto:animegold3@gmail.com" },
|
||||
{ icon: "📧", nameKey: "svc_mail_backup", url: "mailto:admin@evilfox.win" },
|
||||
{ icon: "✈️", nameKey: "svc_support", url: "https://t.me/evilfox100Bot" }
|
||||
];
|
||||
const AUTO_BEST_KEY = "navis.autoBest";
|
||||
@@ -3989,7 +3996,7 @@
|
||||
} catch (e) { setMeta(String(e), "err"); }
|
||||
}));
|
||||
subUrl.addEventListener("keydown", (e) => {
|
||||
if (e.key === "Enter") {
|
||||
if (e.key === "Enter" && (e.ctrlKey || e.metaKey)) {
|
||||
e.preventDefault();
|
||||
subBtn.click();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user