mirror of
https://github.com/anten-ka/gotelegram_pro.git
synced 2026-05-19 21:56:05 +00:00
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:
@@ -967,10 +967,16 @@ async def get_proxy_link() -> Optional[str]:
|
||||
faketls_secret = f"ee{secret}{domain_hex}"
|
||||
return f"tg://proxy?server={domain}&port={port}&secret={faketls_secret}"
|
||||
|
||||
# Lite-режим: IP
|
||||
# Lite-режим: IP + fake-TLS с mask_host
|
||||
code, stdout, _ = await sh("curl", "-s", "-4", "--max-time", "5", "https://api.ipify.org")
|
||||
server = stdout.strip() if code == 0 and stdout.strip() else "0.0.0.0"
|
||||
|
||||
mask_host = config.get("mask_host", "")
|
||||
if mask_host:
|
||||
domain_hex = mask_host.encode().hex()
|
||||
faketls_secret = f"ee{secret}{domain_hex}"
|
||||
return f"tg://proxy?server={server}&port={port}&secret={faketls_secret}"
|
||||
|
||||
return f"tg://proxy?server={server}&port={port}&secret={secret}"
|
||||
|
||||
|
||||
|
||||
58
install.sh
58
install.sh
@@ -96,15 +96,13 @@ show_main_menu() {
|
||||
echo -e " ${DIM}${line2}${NC}"
|
||||
|
||||
# ── Прокси-ссылка + QR ──
|
||||
local mask_host
|
||||
mask_host=$(config_get mask_host 2>/dev/null || echo "")
|
||||
if [ -n "$secret" ] && [ "$proxy_status" = "running" ]; then
|
||||
if [ "$mode" = "pro" ] && [ -n "$domain" ]; then
|
||||
local raw_secret faketls_secret domain_hex
|
||||
raw_secret="$secret"
|
||||
domain_hex=$(printf '%s' "$domain" | xxd -p | tr -d '\n')
|
||||
faketls_secret="ee${raw_secret}${domain_hex}"
|
||||
link="tg://proxy?server=${domain}&port=${port}&secret=${faketls_secret}"
|
||||
link=$(generate_proxy_link "$domain" "$port" "$secret" "$domain")
|
||||
else
|
||||
link="tg://proxy?server=${ip}&port=${port}&secret=${secret}"
|
||||
link=$(generate_proxy_link "$ip" "$port" "$secret" "$mask_host")
|
||||
fi
|
||||
|
||||
echo -e " ${BOLD}${WHITE}Ссылка для Telegram:${NC}"
|
||||
@@ -454,20 +452,18 @@ menu_status() {
|
||||
|
||||
# ── Ссылка ───────────────────────────────────────────────────────────────────
|
||||
menu_link() {
|
||||
local secret port ip link mode domain
|
||||
local secret port ip link mode domain mask_host
|
||||
secret=$(get_config_value secret)
|
||||
port=$(get_config_value port)
|
||||
ip=$(get_server_ip)
|
||||
mode=$(config_get mode 2>/dev/null || echo "lite")
|
||||
domain=$(config_get domain 2>/dev/null || echo "")
|
||||
mask_host=$(config_get mask_host 2>/dev/null || echo "")
|
||||
|
||||
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
|
||||
|
||||
echo ""
|
||||
@@ -483,21 +479,19 @@ menu_link() {
|
||||
|
||||
# ── Поделиться ───────────────────────────────────────────────────────────────
|
||||
menu_share() {
|
||||
local secret port ip link mode domain server_display
|
||||
local secret port ip link mode domain mask_host server_display
|
||||
secret=$(get_config_value secret)
|
||||
port=$(get_config_value port)
|
||||
ip=$(get_server_ip)
|
||||
mode=$(config_get mode 2>/dev/null || echo "lite")
|
||||
domain=$(config_get domain 2>/dev/null || echo "")
|
||||
mask_host=$(config_get mask_host 2>/dev/null || echo "")
|
||||
|
||||
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")
|
||||
server_display="$domain"
|
||||
else
|
||||
link=$(generate_proxy_link "$ip" "$port" "$secret")
|
||||
link=$(generate_proxy_link "$ip" "$port" "$secret" "$mask_host")
|
||||
server_display="$ip"
|
||||
fi
|
||||
|
||||
@@ -1010,20 +1004,20 @@ bot_remove() {
|
||||
menu_promo() {
|
||||
echo ""
|
||||
echo -e " ${YELLOW}╔══════════════════════════════════════════════════════╗${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${BOLD}💰 ХОСТИНГ #1 — СКИДКА ДО 60%${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} Ссылка: ${CYAN}https://vk.cc/ct29NQ${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${BOLD}💰 ХОСТИНГ #1 — СКИДКА ДО 60%${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} Ссылка: ${CYAN}https://vk.cc/ct29NQ${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}OFF60${NC} — 60% скидки на первый месяц ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}antenka20${NC} — 20% + 3% при оплате за 3 месяца ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}antenka6${NC} — 15% + 5% при оплате за 6 месяцев ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}antenka20${NC} — 20% + 3% при оплате за 3 месяца ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}antenka6${NC} — 15% + 5% при оплате за 6 месяцев ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}╟──────────────────────────────────────────────────────╢${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${BOLD}💰 ХОСТИНГ #2 — СКИДКА ДО 60%${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} Ссылка: ${CYAN}https://vk.cc/cUxAhj${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${BOLD}💰 ХОСТИНГ #2 — СКИДКА ДО 60%${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} Ссылка: ${CYAN}https://vk.cc/cUxAhj${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}OFF60${NC} — 60% скидки на первый месяц ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}╟──────────────────────────────────────────────────────╢${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${BOLD}☕ Донат / Чаевые${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${CYAN}https://pay.cloudtips.ru/p/7410814f${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${BOLD}☕ Донат / Чаевые${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${CYAN}https://pay.cloudtips.ru/p/7410814f${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}╚══════════════════════════════════════════════════════╝${NC}"
|
||||
echo ""
|
||||
}
|
||||
@@ -1053,15 +1047,15 @@ mark_promo_shown() {
|
||||
show_promo_with_qr() {
|
||||
echo ""
|
||||
echo -e " ${YELLOW}╔══════════════════════════════════════════════════════╗${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${BOLD}💰 ХОСТИНГ #1 — СКИДКА ДО 60%${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} Ссылка: ${CYAN}https://vk.cc/ct29NQ${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${BOLD}💰 ХОСТИНГ #1 — СКИДКА ДО 60%${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} Ссылка: ${CYAN}https://vk.cc/ct29NQ${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}OFF60${NC} — 60% скидки на первый месяц ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}antenka20${NC} — 20% + 3% при оплате за 3 месяца ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}antenka6${NC} — 15% + 5% при оплате за 6 месяцев ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}antenka20${NC} — 20% + 3% при оплате за 3 месяца ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}antenka6${NC} — 15% + 5% при оплате за 6 месяцев ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}╟──────────────────────────────────────────────────────╢${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${BOLD}💰 ХОСТИНГ #2 — СКИДКА ДО 60%${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} Ссылка: ${CYAN}https://vk.cc/cUxAhj${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${BOLD}💰 ХОСТИНГ #2 — СКИДКА ДО 60%${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} Ссылка: ${CYAN}https://vk.cc/cUxAhj${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}║${NC} ${WHITE}OFF60${NC} — 60% скидки на первый месяц ${YELLOW}║${NC}"
|
||||
echo -e " ${YELLOW}╚══════════════════════════════════════════════════════╝${NC}"
|
||||
|
||||
@@ -225,7 +225,7 @@ install_pkg() {
|
||||
|
||||
ensure_deps() {
|
||||
local missing=()
|
||||
for cmd in curl jq openssl git; do
|
||||
for cmd in curl jq openssl git qrencode; do
|
||||
if ! command -v "$cmd" &>/dev/null; then
|
||||
missing+=("$cmd")
|
||||
fi
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user