Files
telegram-tui/docs/REQUIREMENTS.md
Mikhail Kilin 060170923e fixes
2026-01-18 14:49:31 +03:00

79 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TTUI - Требование к приложению
## Описание приложения
Терминальный интерфейс для telegram
## Функциональные требования
### Интерфейс
┌─ TTUI ───────────────────────────────────────────────────────────────────────┐
│ 1:All │ 2:Personal │ 3:Work │ 4:Bots │
├──────────────────────┬───────────────────────────────────────────────────────┤
│ 🔍 Search... │ 👤 Mom (online) │
├──────────────────────┼───────────────────────────────────────────────────────┤
│ 📌 Saved Messages │ Today, Dec 21│
│ ▌ Mom (2)│ │
│ Boss │ Mom ────────────────────────────────────────── 14:20 │
│ Rust Community │ Привет! Ты покормил кота? │
│ Durov │ │
│ News Channel │ You ─────────────────────────────────────── 14:22 ✓✓ │
│ Spam Bot │ Да, конечно. Купил ему корм. │
│ Wife │ Скоро буду дома. │
│ Team Lead │ │
│ DevOps Chat (9)│ Mom ────────────────────────────────────────── 14:23 │
│ Server Alerts │ Отлично, захвати хлеба. │
│ Gym Bro │ │
│ Design Team │ You ─────────────────────────────────────── 14:25 ✓ │
│ Project X │ Ок. │
│ HR │ │
│ Mom's Friend │ │
│ Taxi Bot │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
├──────────────────────┼───────────────────────────────────────────────────────┤
│ [User: Online] │ > **message**
└──────────────────────┴───────────────────────────────────────────────────────┘
**commands**
### Список желаемого
1) футер - список папок в телеграме
2) список с чатами - лички и группы, сверху инпут для поиска чата
3) основной контент - открытый чат с сообщениями из чата, если никакой чат не открыт, то контент пустой, ничего не показываем. Снизу - инпут для ввода сообщения в чат, который открыт
4) снизу списка чата статус онлайн или нет сам пользователь приложения
5) при открытии чата должна загружаться история чата, а так же подгружаться новые сообщения от собеседника.
6) выделяем сообщения собеседника его никнеймом, группируем его сообщения и разделяем наши сообщения и сообщения собеседника, как на интерфейсе сверху
7) отображаем наше сообщение символом `✓`, если телеграм подтвердил, что сообщение отправлено, и выделяем `✓✓` если собеседник прочитал его
8) при навигации в чате выделяем строку курсивом, при выборе чата (то есть его открытии) ставим в начало символ ▌
9) `(2)` — счетчик непрочитанных (можно красить в красный/зеленый).
10) `muted` — статус чата (серый цвет).
11) `@` — пинг/меншн.
12) с видео/картинками/голосовые пока ничего не делаем, ренденим заглушку (с упоминанием что это картинка или видео и тд)
### Управление
1) ctrl+c или command+c - выход из программы
2) "h j k l" - влево, вниз, вверх, вправо (навигация в левом столбце) vim-style управление
3) стрелки - управление, так же как и "h j k l"
4) "command + 1", "command + 2" и так далее - переключение между папками, которые созданы в телеграме
5) из интерфейса "**message**" - это инпут для ввода сообщения в открытый чат
6) ctrl + s - фокус в инпут поиска чата
7) `**commands**` - сюда вставь описания команд, которые есть в приложении
## Технологии
Пишем на rust-е
1) ratatui - для tui интерфейса
2) rust-tdlib - для подключения апи телеграма
## Нефункциональные требования
### Производительность
1) программа должна выдавать 60 фпс
2) интерфейс не должен мерцать
3) минимальное разрешение - 600 символов, максимального нет, не ограничиваем