Update README.md
This commit is contained in:
parent
dd9827ec11
commit
8832738f00
44
README.md
44
README.md
|
|
@ -1,3 +1,43 @@
|
|||
# TyChat-Client
|
||||
# TyChat-Client TUI
|
||||
|
||||
Клиент для TyChat т.е. днища
|
||||
Минимальный консольный клиент, используемый разработчиками для тестирования протокола AcoustiOverSocket.
|
||||
|
||||
## Зависимости и запуск
|
||||
|
||||
Приложение автоматически проверяет и устанавливает необходимые библиотеки при первом запуске (`prompt_toolkit`, `numpy`, `sounddevice`, `python-socketio`).
|
||||
|
||||
```bash
|
||||
python client.py
|
||||
|
||||
```
|
||||
|
||||
## Управление
|
||||
|
||||
* **Tab** — Переключение фокуса между списком чатов (левая панель) и полем ввода сообщения (нижняя панель).
|
||||
* **Стрелки Вверх / Вниз** — Навигация по списку контактов (работает, когда фокус находится на панели чатов). При перемещении выбор чата переключается автоматически.
|
||||
* **Ctrl + C** или ввод `/exit` — Корректное завершение работы и выход из терминала.
|
||||
|
||||
## Команды в поле ввода
|
||||
|
||||
* `/help` — Открывает официальную Wiki проекта в браузере по умолчанию.
|
||||
* `/add <UIN>` — Локально добавляет новый UIN в список контактов.
|
||||
* `/alert <сообщение>` — Отправляет сообщение с флагом приоритетного внимания (выставляет статус `[!]` у получателя).
|
||||
* `s/что_заменить/на_что_заменить` — Замена текста в последнем отправленном сообщении (аналог синтаксиса `sed`).
|
||||
|
||||
---
|
||||
|
||||
# Преимущества
|
||||
|
||||
* **Автономность и локальное хранение:** Вся история сообщений и список контактов сохраняются на стороне клиента в файле `settings.json`. Сервер выполняет исключительно роль ретранслятора пакетов.
|
||||
* **Адаптивный TUI-интерфейс:** Благодаря использованию контейнеров `Frame` из библиотеки `prompt_toolkit`, интерфейс автоматически масштабируется под любые размеры окна терминала без сдвигов и искажения разметки.
|
||||
* **Поддержка отложенной доставки (Preserved):** Если целевой контакт находится в офлайне, клиент кэширует исходящие сообщения локально и автоматически отправляет их, как только протокол зафиксирует появление пользователя в сети.
|
||||
|
||||
# Недостатки
|
||||
|
||||
* **Отсутствие серверной истории:** Поскольку сервер не логирует пакеты, получить пропущенные за время офлайна сообщения невозможно, если у отправителя в этот момент был закрыт клиент.
|
||||
* **Акустическая нагрузка:** Специфика протокола передачи данных подразумевает генерацию высокочастотных аудиосигналов через системное устройство вывода, что требует ручного контроля уровня громкости.
|
||||
* **Отсутствие ввода с мышки:** Навигация полностью переведена на клавиатурные хоткеи ради стабильности работы интерфейса в специфических и эмулируемых терминальных средах.
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
Reference in a new issue