fix: frame alignment, ee-prefix for lite mode, qrencode in deps

- All frame boxes: correct 54-char width with emoji compensation
- Lite mode links now include ee-prefix + mask_host hex (fake-TLS)
- Added qrencode to ensure_deps() so QR codes work after fresh install
- Centralized link generation in generate_proxy_link()
- Fixed bot.py get_proxy_link() for lite mode ee-prefix
This commit is contained in:
anten-ka
2026-04-09 19:24:05 +03:00
parent d70e046035
commit fedc8f77fe
4 changed files with 48 additions and 42 deletions

View File

@@ -242,10 +242,19 @@ select_port() {
# ── Генерация ссылки tg://proxy ──────────────────────────────────────────────
generate_proxy_link() {
local ip="${1:-$(get_server_ip)}"
local server="${1:-$(get_server_ip)}"
local port="${2:-443}"
local secret="$3"
echo "tg://proxy?server=${ip}&port=${port}&secret=${secret}"
local mask_host="${4:-}"
# Если указан mask_host (fake-TLS), формируем ee-секрет
if [ -n "$mask_host" ]; then
local domain_hex
domain_hex=$(printf '%s' "$mask_host" | xxd -p | tr -d '\n')
secret="ee${secret}${domain_hex}"
fi
echo "tg://proxy?server=${server}&port=${port}&secret=${secret}"
}
# ── Вывод информации о прокси ────────────────────────────────────────────────
@@ -263,14 +272,11 @@ show_proxy_info() {
mode=$(config_get mode 2>/dev/null || echo "lite")
domain=$(config_get domain 2>/dev/null || echo "")
# Pro-режим: ссылка с доменом и fake-TLS секретом
# Генерация ссылки: оба режима используют ee-секрет с mask_host
if [ "$mode" = "pro" ] && [ -n "$domain" ]; then
local domain_hex faketls_secret
domain_hex=$(printf '%s' "$domain" | xxd -p | tr -d '\n')
faketls_secret="ee${secret}${domain_hex}"
link="tg://proxy?server=${domain}&port=${port}&secret=${faketls_secret}"
link=$(generate_proxy_link "$domain" "$port" "$secret" "$domain")
else
link=$(generate_proxy_link "$ip" "$port" "$secret")
link=$(generate_proxy_link "$ip" "$port" "$secret" "$mask_host")
fi
local status_icon status_text