Ссылки «открыть в приложении» (Karing, Happ) рядом с подпиской: в kit user link и в итоге установки

This commit is contained in:
maxdmitrov
2026-10-05 17:39:43 +03:00
parent e818d22c65
commit c4e6ed1a5d
5 changed files with 17 additions and 3 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
* Установка теперь по шагам, а все ссылки разложены по полочкам: основные и запасные. Раньше они сыпались потоком, как лента новостей.
* Сайт для маскировки подбирается среди соседей по подсети, а не «у всех один». Свой домен по-прежнему лучший вариант. REALITY теперь с `xtls-rprx-vision`, Hysteria2 отвечает на чужой запрос страницей сайта.
* `kit check --deep` подключается к серверу настоящим клиентом, `--fix` лечит безопасное. Общий лимит трафика считается по всем подключениям пользователя, а в подписке Clash есть «Авто»: клиент сам выбирает быстрейший протокол. DNS в подписках теперь по DoH через прокси: запросы имён не гуляют где попало.
* Со своим доменом панель и подписку можно открывать и по домену: `--panel-on domain` при установке или `kit net panel domain` потом. Вернулся `--restore`: чистый сервер поднимается из `kit backup`, как из резервной копии настроек телефона. Ссылки `kit user link --amnezia` и `--telegram` для AmneziaVPN и Telegram теперь одной командой, а исправление времени на Debian 13 прислал [xlok1e](https://github.com/xlok1e), спасибо.
* Рядом с подпиской теперь ссылки «открыть в Karing и Happ»: одно нажатие, и подписка добавлена с названием. Со своим доменом панель и подписку можно открывать и по домену: `--panel-on domain` при установке или `kit net panel domain` потом. Вернулся `--restore`: чистый сервер поднимается из `kit backup`, как из резервной копии настроек телефона. Ссылки `kit user link --amnezia` и `--telegram` для AmneziaVPN и Telegram теперь одной командой, а исправление времени на Debian 13 прислал [xlok1e](https://github.com/xlok1e), спасибо.
Сервер обновится сам этой ночью, нетерпеливым – `kit update`.
+1 -1
View File
@@ -93,7 +93,7 @@ kit # меню: пользо
kit user add имя [--gb 50] [--days 30] [--devices 3] # добавить пользователя во все протоколы, показать подписку и ссылки
kit user list # кто сколько израсходовал, до какого числа, когда был в сети
kit user link имя [--all | --amnezia | --telegram] # показать ссылки снова (AmneziaVPN, Telegram – отдельными ключами)
kit user link имя [--all | --amnezia | --telegram] # подписка, ссылки «открыть в Karing и Happ», отдельные ссылки (AmneziaVPN, Telegram – ключами)
kit user limit имя [--gb N] [--days N] [--devices N] # изменить лимиты (0 – без ограничений)
kit user off имя / kit user on имя # временно выключить и включить
kit user del имя # удалить пользователя
+1 -1
View File
@@ -110,7 +110,7 @@ kit user add sasha --gb 50 --days 30
|---|---|
| `kit user add имя [--gb N] [--days N] [--devices N]` | добавить; лимит трафика, срок и число устройств – по желанию |
| `kit user list` | кто сколько израсходовал, до какого числа и когда был в сети |
| `kit user link имя [--all \| --amnezia \| --telegram]` | подписка и ссылки ещё раз: основные и запасные по группам; AmneziaVPN и Telegram – отдельными ключами |
| `kit user link имя [--all \| --amnezia \| --telegram]` (рядом с подпиской – ссылки «открыть в Karing и Happ») | подписка и ссылки ещё раз: основные и запасные по группам; AmneziaVPN и Telegram – отдельными ключами |
| `kit user limit имя --gb N --days N` | изменить лимиты (0 – без ограничений) |
| `kit user off имя` / `kit user on имя` | временно выключить и включить |
| `kit user del имя` | удалить |
+2
View File
@@ -787,6 +787,8 @@ main() {
echo " Вставьте в Happ, Hiddify, Karing, v2rayN, Clash Verge или FlClash."
qrencode -t ANSIUTF8 -m 1 "$SUB_URL" || true
echo
/usr/local/bin/kit __applinks "$SUB_URL" || true
echo
KIT_NO_QR=1 /usr/local/bin/kit __links "$NAME" "$SUBID" || true
else
/usr/local/bin/kit __links "$NAME" "$SUBID" || true
+12
View File
@@ -142,6 +142,15 @@ direct_links() { # subId фильтр
# Панель «через SSH-туннель»: подписка слушает только 127.0.0.1, с телефона по ней не зайти.
local_only_sub() { [[ ${SUB_BASE:-} == http://127.0.0.1* || ${SUB_BASE:-} == http://localhost* ]]; }
# Ссылки «открыть в приложении»: нажатие добавляет подписку сразу с названием (проверено: Karing и Happ).
app_links() { # адрес подписки
local url=$1 enc
enc=$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))' "$url")
echo "Открыть в приложении (отправьте ссылку себе или близкому в мессенджер и нажмите):"
echo " Karing: karing://install-config?url=$enc&name=3X-UI%20KIT"
echo " Happ: happ://add/$url"
}
show_link() { # имя subId
local url
url=$(sub_url "$2")
@@ -159,6 +168,8 @@ show_link() { # имя subId
echo "$url"
echo
command -v qrencode >/dev/null && qrencode -t ANSIUTF8 -m 1 "$url"
app_links "$url"
echo
echo "${D}Отдельные ссылки на каждый протокол: kit user link $1 --all${N}"
}
@@ -2250,6 +2261,7 @@ case "$cmd_key" in
inbound_patch "$_id" '.streamSettings |= ((if type == "string" then fromjson else . end) | .realitySettings.xver = $x)' --argjson x "$2" || true
done < <(sni_targets | awk -F'\t' '$2 == "self" {print $1}') ;;
"__links "*) links_block "${2:-}" "${3:-}" ;;
"__applinks "*) app_links "${2:-}" ;;
"update "*) shift; cmd_update "$@" ;;
"backup "*) cmd_backup ;;
"check "*) shift; cmd_check "$@" ;;