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
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:
67
CONTEXT.md
67
CONTEXT.md
@@ -1,6 +1,6 @@
|
||||
# Текущий контекст проекта
|
||||
|
||||
## Статус: Фаза 9 — Расширенные возможности
|
||||
## Статус: Фаза 9 — ЗАВЕРШЕНО
|
||||
|
||||
### Что сделано
|
||||
|
||||
@@ -51,6 +51,12 @@
|
||||
- Emoji picker с сеткой доступных реакций (8 в ряду)
|
||||
- Добавление/удаление реакций (toggle)
|
||||
- Обновление реакций в реальном времени через Update::MessageInteractionInfo
|
||||
- **Конфигурационный файл** (`~/.config/tele-tui/config.toml`):
|
||||
- Автоматическое создание дефолтного конфига при первом запуске
|
||||
- **Настройка timezone**: формат "+03:00" или "-05:00"
|
||||
- **Настройка цветов**: incoming_message, outgoing_message, selected_message, reaction_chosen, reaction_other
|
||||
- **Credentials файл** (`~/.config/tele-tui/credentials`): API_ID и API_HASH
|
||||
- Приоритет загрузки: ~/.config/tele-tui/credentials → .env → сообщение об ошибке с инструкциями
|
||||
- **Кеширование имён пользователей**: имена загружаются асинхронно и обновляются в UI
|
||||
- **Папки Telegram**: загрузка и переключение между папками (1-9)
|
||||
- **Медиа-заглушки**: [Фото], [Видео], [Голосовое], [Стикер], [GIF] и др.
|
||||
@@ -121,6 +127,7 @@
|
||||
```
|
||||
src/
|
||||
├── main.rs # Точка входа, event loop, TDLib инициализация, graceful shutdown
|
||||
├── config.rs # Конфигурация (TOML), загрузка credentials
|
||||
├── app/
|
||||
│ ├── mod.rs # App структура и состояние (needs_redraw флаг)
|
||||
│ └── state.rs # AppScreen enum
|
||||
@@ -136,10 +143,10 @@ src/
|
||||
│ ├── mod.rs # Роутинг ввода
|
||||
│ ├── auth.rs # Обработка ввода на экране авторизации
|
||||
│ └── main_input.rs # Обработка ввода на главном экране
|
||||
├── utils.rs # Утилиты (disable_tdlib_logs, format_timestamp, format_date, get_day)
|
||||
├── utils.rs # Утилиты (disable_tdlib_logs, format_timestamp_with_tz, format_date, get_day)
|
||||
└── tdlib/
|
||||
├── mod.rs # Модуль экспорта (TdClient, UserOnlineStatus, NetworkState)
|
||||
└── client.rs # TdClient: авторизация, чаты, сообщения, кеш, NetworkState
|
||||
└── client.rs # TdClient: авторизация, чаты, сообщения, кеш, NetworkState, ReactionInfo
|
||||
```
|
||||
|
||||
### Ключевые решения
|
||||
@@ -162,6 +169,10 @@ src/
|
||||
|
||||
9. **Перенос текста**: Длинные сообщения автоматически разбиваются на строки с учётом ширины терминала. Для исходящих — time_mark на последней строке, для входящих — время на первой строке с отступом для остальных.
|
||||
|
||||
10. **Конфигурационный файл**: TOML конфиг создаётся автоматически при первом запуске в `~/.config/tele-tui/config.toml`. Поддерживает настройку timezone (применяется к отображению времени через `format_timestamp_with_tz`) и цветовой схемы (парсится в `ratatui::style::Color`). Credentials загружаются с приоритетом: XDG config dir → .env → ошибка с инструкциями.
|
||||
|
||||
11. **Реакции**: Хранятся в `Vec<ReactionInfo>` для каждого сообщения. Обновляются в реальном времени через `Update::MessageInteractionInfo`. Emoji picker использует сетку 8x6 с навигацией стрелками. Приоритет обработки ввода: reaction picker → delete confirmation → остальные модалки (важно для корректной работы Enter/Esc).
|
||||
|
||||
### Зависимости (Cargo.toml)
|
||||
|
||||
```toml
|
||||
@@ -173,20 +184,62 @@ serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
dotenvy = "0.15"
|
||||
chrono = "0.4"
|
||||
clipboard = "0.5"
|
||||
toml = "0.8"
|
||||
dirs = "5.0"
|
||||
```
|
||||
|
||||
### Переменные окружения (.env)
|
||||
### API Credentials
|
||||
|
||||
Приоритет загрузки (от высшего к низшему):
|
||||
|
||||
1. **Файл credentials** (`~/.config/tele-tui/credentials`):
|
||||
```
|
||||
API_ID=your_api_id
|
||||
API_HASH=your_api_hash
|
||||
```
|
||||
|
||||
## Что НЕ сделано / TODO (Фаза 9)
|
||||
2. **Переменные окружения** (`.env` файл в текущей директории):
|
||||
```
|
||||
API_ID=your_api_id
|
||||
API_HASH=your_api_hash
|
||||
```
|
||||
|
||||
- [ ] Конфигурационный файл (~/.config/tele-tui/config.toml)
|
||||
3. Если ничего не найдено — показывается сообщение об ошибке с инструкциями.
|
||||
|
||||
### Конфигурационный файл
|
||||
|
||||
Создаётся автоматически при первом запуске в `~/.config/tele-tui/config.toml`:
|
||||
|
||||
```toml
|
||||
[general]
|
||||
# Часовой пояс в формате "+03:00" или "-05:00"
|
||||
# Применяется к отображению времени сообщений
|
||||
timezone = "+03:00"
|
||||
|
||||
[colors]
|
||||
# Цветовая схема (поддерживаемые цвета: black, red, green, yellow, blue, magenta, cyan, gray, white, darkgray, lightred, lightgreen, lightyellow, lightblue, lightmagenta, lightcyan)
|
||||
|
||||
# Цвет входящих сообщений
|
||||
incoming_message = "white"
|
||||
|
||||
# Цвет исходящих сообщений
|
||||
outgoing_message = "green"
|
||||
|
||||
# Цвет выбранного сообщения
|
||||
selected_message = "yellow"
|
||||
|
||||
# Цвет своих реакций (в рамках [👍])
|
||||
reaction_chosen = "yellow"
|
||||
|
||||
# Цвет чужих реакций
|
||||
reaction_other = "gray"
|
||||
```
|
||||
|
||||
## Что НЕ сделано / TODO
|
||||
|
||||
Все пункты Фазы 9 завершены! Можно переходить к следующей фазе разработки.
|
||||
|
||||
## Известные проблемы
|
||||
|
||||
1. При первом запуске нужно пройти авторизацию
|
||||
2. Время отображается с фиксированным смещением +3 (MSK)
|
||||
|
||||
Reference in New Issue
Block a user