From 8832738f004a5b368e6613bc8145729f5cc4eeea Mon Sep 17 00:00:00 2001 From: lohrrrr Date: Mon, 18 May 2026 23:45:46 +0300 Subject: [PATCH] Update README.md --- README.md | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8aa5280..1b3ec21 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,43 @@ -# TyChat-Client +# TyChat-Client TUI -Клиент для TyChat т.е. днища \ No newline at end of file +Минимальный консольный клиент, используемый разработчиками для тестирования протокола AcoustiOverSocket. + +## Зависимости и запуск + +Приложение автоматически проверяет и устанавливает необходимые библиотеки при первом запуске (`prompt_toolkit`, `numpy`, `sounddevice`, `python-socketio`). + +```bash +python client.py + +``` + +## Управление + +* **Tab** — Переключение фокуса между списком чатов (левая панель) и полем ввода сообщения (нижняя панель). +* **Стрелки Вверх / Вниз** — Навигация по списку контактов (работает, когда фокус находится на панели чатов). При перемещении выбор чата переключается автоматически. +* **Ctrl + C** или ввод `/exit` — Корректное завершение работы и выход из терминала. + +## Команды в поле ввода + +* `/help` — Открывает официальную Wiki проекта в браузере по умолчанию. +* `/add ` — Локально добавляет новый UIN в список контактов. +* `/alert <сообщение>` — Отправляет сообщение с флагом приоритетного внимания (выставляет статус `[!]` у получателя). +* `s/что_заменить/на_что_заменить` — Замена текста в последнем отправленном сообщении (аналог синтаксиса `sed`). + +--- + +# Преимущества + +* **Автономность и локальное хранение:** Вся история сообщений и список контактов сохраняются на стороне клиента в файле `settings.json`. Сервер выполняет исключительно роль ретранслятора пакетов. +* **Адаптивный TUI-интерфейс:** Благодаря использованию контейнеров `Frame` из библиотеки `prompt_toolkit`, интерфейс автоматически масштабируется под любые размеры окна терминала без сдвигов и искажения разметки. +* **Поддержка отложенной доставки (Preserved):** Если целевой контакт находится в офлайне, клиент кэширует исходящие сообщения локально и автоматически отправляет их, как только протокол зафиксирует появление пользователя в сети. + +# Недостатки + +* **Отсутствие серверной истории:** Поскольку сервер не логирует пакеты, получить пропущенные за время офлайна сообщения невозможно, если у отправителя в этот момент был закрыт клиент. +* **Акустическая нагрузка:** Специфика протокола передачи данных подразумевает генерацию высокочастотных аудиосигналов через системное устройство вывода, что требует ручного контроля уровня громкости. +* **Отсутствие ввода с мышки:** Навигация полностью переведена на клавиатурные хоткеи ради стабильности работы интерфейса в специфических и эмулируемых терминальных средах. + +``` + +``` \ No newline at end of file