Это крупное обновление полностью перерабатывает архитектуру приложения, переходя от клиент-серверной модели к децентрализованной Peer-to-Peer (P2P) системе. Теперь для общения не требуется отдельный выделенный сервер.
Ключевые преимущества новой версии
- Полная независимость: Больше нет необходимости запускать и поддерживать отдельный серверный скрипт. Любой пользователь может создать временный голосовой канал прямо из своего клиента.
- Простота использования: Интерфейс был значительно упрощен. Вместо ввода IP-адреса и порта теперь есть удобный стартовый экран с возможностью создать новый канал одним кликом или подключиться к существующему.
- Сохранение сессий: Приложение запоминает ваш никнейм и список каналов, к которым вы подключались или которые создавали. Это позволяет быстро переподключаться к частым комнатам или перезапускать свой собственный канал на том же порту.
- Повышенная стабильность и надёжность:
- Устранены критические ошибки, приводившие к падению приложения при работе с поврежденным файлом конфигурации.
- Заменен устаревший модуль
audioop, что гарантирует совместимость с будущими версиями Python. - Система уведомлений стала менее навязчивой — ошибки и статусы отображаются внутри интерфейса, а не в виде системных всплывающих окон.
🚀 Новые возможности (Added)
- Архитектура Peer-to-Peer (P2P): Приложение теперь включает в себя как клиентскую, так и серверную логику.
- Стартовый экран: Добавлен новый главный экран, который служит центральным узлом для создания каналов, подключения к ним и управления сохраненными каналами.
- Хостинг каналов: Реализована возможность для любого пользователя создать (захостить) свой собственный голосовой канал. Сервер запускается в фоновом потоке.
- Сохранение конфигурации: Приложение автоматически сохраняет никнейм пользователя и список каналов в файл
voicebridge_config.json. - Память типов каналов: Система теперь различает каналы, которые вы создали (
hosted), и те, к которым вы подключались как клиент (joined). - Перезапуск хост-каналов: Вы можете выбрать ранее созданный канал из списка, чтобы запустить сервер на том же самом порту, который использовался ранее.
- Управление каналами: Добавлено контекстное меню (вызывается правой кнопкой мыши) для сохраненных каналов, позволяющее подключиться или удалить запись.
🛠️ Изменения и улучшения (Changed)
- Замена
audioop: Устаревший и подлежащий удалению модульaudioopбыл полностью заменен на собственные функции для вычисления RMS (уровня громкости) и изменения громкости аудиопотока с использованием стандартных библиотекmathиstruct. - Система уведомлений: Все системные всплывающие окна (
QMessageBox) и уведомления в трее были заменены на встроенные в интерфейс сообщения:- Ошибки подключения и работы сервера теперь отображаются в виде текста на стартовом экране.
- Сообщения об отключении теперь появляются как системные уведомления в чате.
- Структура кода: Весь функционал объединен в один файл с четким разделением на логические классы (
StyleManager,ConfigManager,ServerThread,ClientThread,MainWindow), что улучшает читабельность и поддержку кода. - Отображение информации о хосте: При создании канала информация о его адресе (IP и порт) теперь выводится не только на главном экране, но и в виде первого системного сообщения в чате для удобства копирования.
🐛 Исправления (Fixed)
KeyErrorпри чтении конфигурации: Устранена критическая ошибка, которая приводила к падению приложения при запуске, если файлvoicebridge_config.jsonсодержал некорректные или устаревшие записи. Теперь приложение безопасно пропускает поврежденные элементы.TypeErrorпри создании компоновки: Исправлена ошибка в синтаксисе созданияQVBoxLayout, которая могла приводить к сбою на некоторых версиях Qt.
🗑️ Удалено (Removed)
- Экран входа: Старый экран для ввода имени и адреса сервера был полностью удален и заменен новым, более функциональным стартовым экраном.
- Уведомление в трее: Удалено всплывающее уведомление при сворачивании приложения в системный трей.
Full Changelog: v1.2.0...v1.3.0