From ae3d8e34f55d4afe721f6d50f4268cd9e09e71c0 Mon Sep 17 00:00:00 2001 From: StressOzz <131419324+StressOzz@users.noreply.github.com> Date: Sun, 13 Sep 2026 17:33:22 +0500 Subject: [PATCH] Update script comments and improve output messages --- ZapretManager_LuCI.sh | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/ZapretManager_LuCI.sh b/ZapretManager_LuCI.sh index 592890f..481a768 100644 --- a/ZapretManager_LuCI.sh +++ b/ZapretManager_LuCI.sh @@ -1,7 +1,11 @@ #!/bin/sh -# Zapret Manager by StressOzz for LuCI — самодостаточный скрипт (все файлы зашиты внутри). +# Zapret Manager LuCI installer — самодостаточный скрипт (все файлы зашиты внутри). set -e +GREEN="\033[1;32m"; CYAN="\033[1;36m"; YELLOW="\033[1;33m"; MAGENTA="\033[1;35m"; BLUE="\033[0;34m"; NC="\033[0m"; DGRAY="\033[38;5;244m" + +echo -e "\n${MAGENTA}Устанавливаем Zapret Manager для LuCI${NC}" + rm -rf \ /usr/lib/zapret-manager* \ /usr/libexec/rpcd/zapret-manager* \ @@ -143,11 +147,10 @@ status() { /etc/init.d/zapret2 status >/dev/null 2>&1 && zr2_running="true" fi - local strat="" fs_marker + local strat="" fs_marker="" if [ -f "$CONF" ]; then + strat=$(sed -n "/^[[:space:]]*option NFQWS_OPT '\$/,/^[[:space:]]*'\$/p" "$CONF" | grep '^#' | sed 's/^#//' | tr '\n' ' ' | sed 's/ $//') fs_marker=$(grep -m1 '^# ZMFS:' "$CONF" | sed 's/^# ZMFS://') - strat=$(grep -oE '#v[0-9]+|#Yv[0-9]+|#Gv[1-4]|#Dv[0-9]+' "$CONF" | sed 's/^#//' | tr '\n' ' ' | sed 's/ $//') - [ -n "$fs_marker" ] && strat="$fs_marker${strat:+ $strat}" fi printf '{"pkg":"%s","zapret":"%s","zapret_running":%s,"zapret_version":"%s","zapret2":"%s","zapret2_running":%s,"strategy":"%s","flowseal":"%s"}\n' \ @@ -1477,7 +1480,16 @@ tg_status() { fi [ -f "$TG_SECRET_MT_FILE" ] && secret_mt=$(grep '^SECRET=' "$TG_SECRET_MT_FILE" | cut -d= -f2) - [ -f "$TG_SECRET_RS_FILE" ] && secret_rs=$(cat "$TG_SECRET_RS_FILE") + # Ключ Rust-прокси. Оригинальный консольный скрипт никогда не писал его в + # отдельный файл — он всегда встроен прямо в команду запуска init.d-скрипта + # (--secret ). Если установка была сделана через SSH оригинальным + # скриптом (а не через эту панель), нашего файла $TG_SECRET_RS_FILE попросту + # не существует — поэтому читаем ключ из самого init.d-скрипта, это работает + # независимо от того, чем ставили: нашей панелью или оригинальным SSH-скриптом. + if [ -f "$TG_INIT_RS" ]; then + secret_rs=$(sed -n 's/.*--secret[[:space:]]*\([0-9a-fA-F]\{32\}\).*/\1/p' "$TG_INIT_RS" | head -n1) + fi + [ -z "$secret_rs" ] && [ -f "$TG_SECRET_RS_FILE" ] && secret_rs=$(cat "$TG_SECRET_RS_FILE") lan_ip=$(uci -q get network.lan.ipaddr 2>/dev/null | cut -d/ -f1) printf '{"mtproto":"%s","mtproto_running":%s,"mtproto_version":"%s","mtproto_latest":"%s","socks5":"%s","socks5_running":%s,"socks5_version":"%s","socks5_latest":"%s","rust":"%s","rust_running":%s,"rust_version":"%s","rust_latest":"%s","lan_ip":"%s","secret_mtproto":"%s","secret_rust":"%s"}\n' \ @@ -3908,3 +3920,5 @@ if command -v apk >/dev/null 2>&1; then PM="apk"; INSTALL="apk add" else PM="opkg"; INSTALL="opkg install"; fi command -v curl >/dev/null 2>&1 || $INSTALL curl >/dev/null 2>&1 || true command -v unzip >/dev/null 2>&1 || $INSTALL unzip >/dev/null 2>&1 || true + +echo -e "Zapret Manager ${GREEN}для ${NC}LuCI ${GREEN}установлен!${NC}\n"