[PR #449] [CLOSED] Трей, состояние прокси и рефакторинг модулей #32

Closed
opened 2026-07-19 11:34:03 +03:00 by mirror-bot · 0 comments

📋 Pull Request Information

Original PR: https://github.com/Flowseal/tg-ws-proxy/pull/449
Author: @deexsed
Created: 3/27/2026
Status: ❌ Closed

Base: main ← Head: refactor/dry_in_tray


📝 Commits (5)

  • 7db2691 refactor(tray): общие модули utils/ui, README, LF в репозитории
  • bd5056a feat(tray): статус прокси, бейдж на иконке, lock и диагностика
  • a11b634 feat(tray): добавлен статус прокси в GUI и обновлены настройки
  • 85005d0 Update ctk_tray_ui.py
  • 415079e Update README.md

📊 Changes

21 files changed (+1703 additions, -1053 deletions)

View changed files

➕ .editorconfig (+11 -0)
➕ .gitattributes (+9 -0)
📝 README.md (+16 -1)
📝 linux.py (+176 -359)
📝 macos.py (+255 -341)
📝 proxy/tg_ws_proxy.py (+9 -2)
📝 ui/__init__.py (+2 -2)
📝 ui/ctk_theme.py (+3 -1)
📝 ui/ctk_tray_ui.py (+115 -3)
➕ ui/tray_ctk.py (+12 -0)
➕ ui/tray_icons.py (+114 -0)
➕ utils/tray_diagnostics.py (+71 -0)
➕ utils/tray_io.py (+76 -0)
➕ utils/tray_ipv6.py (+79 -0)
➕ utils/tray_lock.py (+181 -0)
➕ utils/tray_paths.py (+44 -0)
➕ utils/tray_proxy_runner.py (+177 -0)
➕ utils/tray_proxy_state.py (+106 -0)
➕ utils/tray_updates.py (+47 -0)
📝 utils/update_check.py (+9 -0)

...and 1 more files

📄 Description

Кратко

Вынос общей логики трея в utils/ и ui/, добавление отображения состояния прокси (иконка с бейджем, диагностика TCP, lock второго экземпляра) и секцию статуса в окне настроек с обновлением README.

Детально

  • Общая логика трея (пути, lock, конфиг, прокси, IPv6, обновления) вынесена в utils/tray_* и ui/tray_*; точки входа windows.py / linux.py / macos.py упрощены.
  • Добавлены .editorconfig и .gitattributes (в т.ч. нормализация окончаний строк).
  • В README кратко описана структура исходников.
  • ProxyRuntimeState и tray_diagnostics: фазы работы прокси, форматирование отчёта по TCP; в tg_ws_proxy — колбэк on_listening.
  • Иконка трея: цветной бейдж (зелёный — слушает, красный — ошибка, жёлтый — прочие состояния); подсказка к иконке с краткой легендой.
  • Меню: один пункт «Статус и проверка TCP…»; проверка порта до запуска; WinError 10013 трактуется как конфликт порта.
  • SingleInstanceLock: не снимать lock, если PID в lock-файле всё ещё жив; более устойчивое сопоставление «своего» процесса.
  • Windows: диалоги MessageBox с родительским HWND трея и флагами SYSTEMMODAL / SETFOREGROUND (корректный фокус и модальность).
  • Обновления: last_check_at, подписи в офлайне; при verbose обновления логируются в INFO.
  • Первый запуск: подсказки по типичным проблемам; macOS: PNG с бейджем для rumps.
  • В форме настроек (CustomTkinter) добавлена секция «Статус»: индикатор фазы, текст состояния и uptime при прослушивании, периодическое обновление.
  • ctk_theme: цвета для «таблетки» статуса (status_pill_bg, status_pill_border).
  • tray_proxy_state / tray_icons: упрощение подсказок и отображения (без лишней второй строки легенды в tooltip там, где это убрано в пользу минимального UI).
  • README и точки входа (windows / linux) синхронизированы с новым поведением.

Важно

Изменения были протестированы только на windows, перед мерджем обязательно протестировать на linux, macos так как изменения глобально влияют на подход к работе программы

Часть кода была написана с использованием ИИ


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Flowseal/tg-ws-proxy/pull/449 **Author:** [@deexsed](https://github.com/deexsed) **Created:** 3/27/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `refactor/dry_in_tray` --- ### 📝 Commits (5) - [`7db2691`](https://github.com/Flowseal/tg-ws-proxy/commit/7db2691ae1f990540b5c1502395eb34942a561f8) refactor(tray): общие модули utils/ui, README, LF в репозитории - [`bd5056a`](https://github.com/Flowseal/tg-ws-proxy/commit/bd5056a64ce821305e33eb6920a2c4df3d8156f6) feat(tray): статус прокси, бейдж на иконке, lock и диагностика - [`a11b634`](https://github.com/Flowseal/tg-ws-proxy/commit/a11b634ba7f0239192dbb74652b8c55ece6b224b) feat(tray): добавлен статус прокси в GUI и обновлены настройки - [`85005d0`](https://github.com/Flowseal/tg-ws-proxy/commit/85005d00537b1a0f46081e2e4e3fff06b3079079) Update ctk_tray_ui.py - [`415079e`](https://github.com/Flowseal/tg-ws-proxy/commit/415079e54bd6d9c581b24f051fd110d0c2ad37b0) Update README.md ### 📊 Changes **21 files changed** (+1703 additions, -1053 deletions) <details> <summary>View changed files</summary> ➕ `.editorconfig` (+11 -0) ➕ `.gitattributes` (+9 -0) 📝 `README.md` (+16 -1) 📝 `linux.py` (+176 -359) 📝 `macos.py` (+255 -341) 📝 `proxy/tg_ws_proxy.py` (+9 -2) 📝 `ui/__init__.py` (+2 -2) 📝 `ui/ctk_theme.py` (+3 -1) 📝 `ui/ctk_tray_ui.py` (+115 -3) ➕ `ui/tray_ctk.py` (+12 -0) ➕ `ui/tray_icons.py` (+114 -0) ➕ `utils/tray_diagnostics.py` (+71 -0) ➕ `utils/tray_io.py` (+76 -0) ➕ `utils/tray_ipv6.py` (+79 -0) ➕ `utils/tray_lock.py` (+181 -0) ➕ `utils/tray_paths.py` (+44 -0) ➕ `utils/tray_proxy_runner.py` (+177 -0) ➕ `utils/tray_proxy_state.py` (+106 -0) ➕ `utils/tray_updates.py` (+47 -0) 📝 `utils/update_check.py` (+9 -0) _...and 1 more files_ </details> ### 📄 Description ## Кратко Вынос общей логики трея в `utils/` и `ui/`, добавление отображения состояния прокси (иконка с бейджем, диагностика TCP, lock второго экземпляра) и секцию статуса в окне настроек с обновлением README. ## Детально - Общая логика трея (пути, lock, конфиг, прокси, IPv6, обновления) вынесена в `utils/tray_*` и `ui/tray_*`; точки входа `windows.py` / `linux.py` / `macos.py` упрощены. - Добавлены `.editorconfig` и `.gitattributes` (в т.ч. нормализация окончаний строк). - В README кратко описана структура исходников. - **`ProxyRuntimeState`** и **`tray_diagnostics`**: фазы работы прокси, форматирование отчёта по TCP; в **`tg_ws_proxy`** — колбэк **`on_listening`**. - **Иконка трея**: цветной бейдж (зелёный — слушает, красный — ошибка, жёлтый — прочие состояния); подсказка к иконке с краткой легендой. - **Меню**: один пункт «Статус и проверка TCP…»; проверка порта до запуска; **WinError 10013** трактуется как конфликт порта. - **`SingleInstanceLock`**: не снимать lock, если PID в lock-файле всё ещё жив; более устойчивое сопоставление «своего» процесса. - **Windows**: диалоги **MessageBox** с родительским HWND трея и флагами **SYSTEMMODAL** / **SETFOREGROUND** (корректный фокус и модальность). - **Обновления**: `last_check_at`, подписи в офлайне; при verbose обновления логируются в **INFO**. - **Первый запуск**: подсказки по типичным проблемам; **macOS**: PNG с бейджем для **rumps**. - В форме настроек (CustomTkinter) добавлена секция **«Статус»**: индикатор фазы, текст состояния и uptime при прослушивании, периодическое обновление. - **`ctk_theme`**: цвета для «таблетки» статуса (`status_pill_bg`, `status_pill_border`). - **`tray_proxy_state` / `tray_icons`**: упрощение подсказок и отображения (без лишней второй строки легенды в tooltip там, где это убрано в пользу минимального UI). - **README** и точки входа (`windows` / `linux`) синхронизированы с новым поведением. # **Важно** Изменения были протестированы только на `windows`, перед мерджем обязательно протестировать на `linux`, `macos` так как изменения глобально влияют на подход к работе программы Часть кода была написана с использованием ИИ --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
mirror-bot added the pull-request label 2026-07-19 11:34:03 +03:00
mirror-bot changed title from [PR #449] [CLOSED] Трей, состояние прокси и рефакторинг модулей to [PR #449] Трей, состояние прокси и рефакторинг модулей 2026-07-20 04:09:23 +03:00
mirror-bot changed title from [PR #449] Трей, состояние прокси и рефакторинг модулей to [PR #449] [CLOSED] Трей, состояние прокси и рефакторинг модулей 2026-07-20 23:14:21 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Utilities/tg-ws-proxy#32