diff --git a/linux.py b/linux.py index 1c96d63..85e02f9 100644 --- a/linux.py +++ b/linux.py @@ -151,16 +151,16 @@ def _edit_config_dialog() -> None: done.set() def on_save() -> None: + from tkinter import messagebox merged = validate_config_form(widgets, DEFAULT_CONFIG, include_autostart=False) if isinstance(merged, str): - _show_error(merged) + messagebox.showerror("TG WS Proxy — Ошибка", merged, parent=root) return save_config(merged) _config.update(merged) log.info("Config saved: %s", merged) _tray_icon.menu = _build_menu() - from tkinter import messagebox do_restart = messagebox.askyesno( "Перезапустить?", "Настройки сохранены.\n\nПерезапустить прокси сейчас?", diff --git a/proxy/tg_ws_proxy.py b/proxy/tg_ws_proxy.py index dc245dd..3c18d05 100644 --- a/proxy/tg_ws_proxy.py +++ b/proxy/tg_ws_proxy.py @@ -1043,7 +1043,7 @@ async def _run(stop_event: Optional[asyncio.Event] = None): log.info("=" * 60) log.info(" Telegram MTProto WS Bridge Proxy") log.info(" Listening on %s:%d", proxy_config.host, proxy_config.port) - log.info(" Secret: %s", "dd" + proxy_config.secret) + log.info(" Secret: %s", proxy_config.secret) log.info(" Target DC IPs:") for dc in sorted(proxy_config.dc_redirects.keys()): ip = proxy_config.dc_redirects.get(dc) diff --git a/ui/ctk_tray_ui.py b/ui/ctk_tray_ui.py index 95e85fd..fd42efa 100644 --- a/ui/ctk_tray_ui.py +++ b/ui/ctk_tray_ui.py @@ -372,10 +372,18 @@ def validate_config_form( except ValueError as e: return str(e) + secret_val = widgets.secret_var.get().strip() + if len(secret_val) != 32: + return "Secret должен содержать ровно 32 hex-символа (16 байт)." + try: + bytes.fromhex(secret_val) + except ValueError: + return "Secret должен состоять только из hex-символов (0-9, a-f)." + new_cfg: Dict[str, Any] = { "host": host_val, "port": port_val, - "secret": widgets.secret_var.get().strip(), + "secret": secret_val, "dc_ip": lines, "verbose": widgets.verbose_var.get(), } diff --git a/windows.py b/windows.py index d612bd0..22e490b 100644 --- a/windows.py +++ b/windows.py @@ -214,9 +214,10 @@ def _edit_config_dialog() -> None: done.set() def on_save() -> None: + from tkinter import messagebox merged = validate_config_form(widgets, DEFAULT_CONFIG, include_autostart=_supports_autostart()) if isinstance(merged, str): - _show_error(merged) + messagebox.showerror("TG WS Proxy — Ошибка", merged, parent=root) return save_config(merged) _config.update(merged) @@ -225,7 +226,6 @@ def _edit_config_dialog() -> None: set_autostart_enabled(bool(merged.get("autostart", False))) _tray_icon.menu = _build_menu() - from tkinter import messagebox do_restart = messagebox.askyesno( "Перезапустить?", "Настройки сохранены.\n\nПерезапустить прокси сейчас?",