fixes
Some checks are pending
CI / Check (pull_request) Waiting to run
CI / Format (pull_request) Waiting to run
CI / Clippy (pull_request) Waiting to run
CI / Build (macos-latest) (pull_request) Waiting to run
CI / Build (ubuntu-latest) (pull_request) Waiting to run
CI / Build (windows-latest) (pull_request) Waiting to run

This commit is contained in:
Mikhail Kilin
2026-01-28 01:29:03 +03:00
parent f291191577
commit 051c4a0265
29 changed files with 2189 additions and 45 deletions

View File

@@ -55,6 +55,29 @@
11) `@` — пинг/меншн.
12) с видео/картинками/голосовые пока ничего не делаем, ренденим заглушку (с упоминанием что это картинка или видео и тд)
### Дополнительно реализованные возможности
13) **Markdown форматирование**: жирный, курсив, подчёркивание, зачёркивание, код, спойлеры, ссылки, упоминания
14) **Редактирование сообщений**: ↑ при пустом инпуте → выбор → Enter → редактирование
15) **Удаление сообщений**: d/в/Delete в режиме выбора → подтверждение → удаление
16) **Reply на сообщения**: r/к в режиме выбора → превью → отправка ответа
17) **Forward сообщений**: f/а в режиме выбора → выбор чата → пересылка
18) **Typing indicator**: отображение "печатает..." когда собеседник набирает текст
19) **Закреплённые сообщения**: отображение pinned message вверху чата с переходом
20) **Поиск по сообщениям**: Ctrl+F для поиска внутри чата, n/N для навигации
21) **Черновики**: автосохранение текста при переключении между чатами
22) **Профиль**: i для просмотра информации о пользователе/группе
23) **Копирование**: y/н для копирования сообщения в системный буфер
24) **Реакции**: e/у для добавления реакций, emoji picker с навигацией стрелками
25) **Конфигурация**: ~/.config/tele-tui/config.toml для настройки цветов и timezone
26) **Credentials**: приоритетная загрузка из ~/.config/tele-tui/credentials или .env
27) **Блочный курсор**: Vim-style курсор █ с навигацией ←/→/Home/End
28) **Динамический инпут**: автоматическое расширение до 10 строк
29) **Онлайн-статус**: зелёная точка ● для онлайн пользователей
30) **Индикаторы**: 📌 закреплённые чаты, 🔇 замьюченные, @ упоминания
31) **Состояние сети**: индикатор в футере (⚠ Нет сети, ⏳ Подключение...)
32) **Graceful shutdown**: корректное закрытие при Ctrl+C
### Управление
1) ctrl+c или command+c - выход из программы
2) "h j k l" - влево, вниз, вверх, вправо (навигация в левом столбце) vim-style управление
@@ -67,19 +90,38 @@
9) поддержка русской раскладки: "р о л д" соответствует "h j k l"
10) Ctrl+R - обновить список чатов
### Реализованные команды (footer)
### Реализованные команды
#### Навигация
```
j/k: Navigate | Ctrl+k: First | Enter: Open | Esc: Close | Ctrl+R: Refresh | Ctrl+C: Quit
↑/↓ или k/j (р/о): Navigate | Enter: Open/Send | Esc: Close/Cancel | 1-9: Folders
Ctrl+S: Search Chats | Ctrl+R: Refresh | Ctrl+F: Search in Chat | Ctrl+C: Quit
```
#### Работа с сообщениями
```
↑ (пустой инпут): Select message | Enter: Edit | r/к: Reply | f/а: Forward
d/в/Delete: Delete | y/н: Copy | e/у: React | i: Profile
```
#### Emoji Picker (реакции)
```
←/→/↑/↓: Navigate | Enter: Toggle reaction | Esc: Close
```
## Технологии
Пишем на rust-е
1) ratatui - для tui интерфейса
2) tdlib-rs - для подключения апи телеграма (обёртка над TDLib)
3) tokio - async runtime
4) crossterm - кроссплатформенный терминал
1) ratatui 0.29 - для tui интерфейса
2) tdlib-rs 1.1 - для подключения апи телеграма (обёртка над TDLib)
3) tokio 1.x - async runtime
4) crossterm 0.28 - кроссплатформенный терминал
5) serde + serde_json 1.0 - сериализация/десериализация
6) toml 0.8 - парсинг конфигурации
7) dirs 5.0 - XDG директории (config, data)
8) clipboard 0.5 - работа с системным буфером обмена
9) chrono 0.4 - форматирование даты/времени
10) dotenvy 0.15 - загрузка .env файлов
## Нефункциональные требования