refactor
Some checks failed
continuous-integration/drone/pr Build is failing

This commit is contained in:
2026-02-17 00:22:42 +09:00
parent ca0c63a89c
commit 0fdad07d82
36 changed files with 4384 additions and 368 deletions

189
docs/UPDATES_2026_02_15.md Normal file
View File

@@ -0,0 +1,189 @@
# Обновления от 15.02.2026
## 📋 Реализованные улучшения
### 1. 📊 Экспорт/Импорт в формате XLSX
**Что изменилось:**
- Экспорт пользователей теперь создает файлы в формате **XLSX** (Excel) вместо JSON
- Импорт пользователей принимает **XLSX файлы** вместо JSON
**Формат XLSX файла:**
#### Колонки в экспорте:
1. `Telegram ID` - обязательная колонка для импорта
2. `Username` - имя пользователя в Telegram
3. `Имя` / `Фамилия` - реальные имя и фамилия
4. `Никнейм` - отображаемое имя в боте
5. `Телефон` - номер телефона
6. `Клубная карта` - номер клубной карты
7. `Зарегистрирован` - статус регистрации (Да/Нет)
8. `Админ` - является ли админом (Да/Нет)
9. `Код верификации` - код для подтверждения
10. `Дата создания` - когда пользователь создан
11. `Последняя активность` - последнее взаимодействие с ботом
12. `Заблокирован в чате` - статус блокировки в чате
**Преимущества XLSX:**
- ✅ Удобное редактирование в Excel/LibreOffice
- ✅ Визуальный контроль данных
- ✅ Авто-подбор ширины колонок
- ✅ Цветное оформление заголовков
- ✅ Легкая сортировка и фильтрация
**Безопасность:**
- 🔒 Статус админа НЕ импортируется из файла (только ручное назначение)
- 🔒 Все данные валидируются перед импортом
**Файлы:**
- `requirements.txt` - добавлена библиотека `openpyxl==3.1.2`
- `src/handlers/admin_panel.py` - обновлены функции экспорта/импорта
---
### 2. 💬 Обработка команд выхода в чате
**Что добавлено:**
Теперь находясь в режиме чата можно быстро вернуться в главное меню, написав одну из команд:
- `/start` - выход из чата в главное меню
- `start` - выход из чата в главное меню
- `старт` - выход из чата в главное меню
- `/exit` - выход из чата (как и раньше)
**Как работает:**
1. Пользователь в режиме чата (ChatStates.in_chat)
2. Пишет одну из команд: `/start`, `start` или `старт`
3. Автоматически выходит из чата
4. Получает главное меню
**Преимущества:**
- ⚡ Быстрый возврат в меню без кнопок
- 🎯 Интуитивные команды (start/старт)
- 🔄 Совместимость с привычным поведением ботов
**Файлы:**
- `src/handlers/chat_handlers.py` - добавлена функция `check_exit_keywords`
---
### 3. ❓ Система справки
**Что добавлено:**
Новая полноценная система помощи пользователям с интерактивной навигацией.
**Разделы справки:**
#### 📝 Регистрация
- Пошаговая инструкция по регистрации
- Какие данные нужны
- Процесс одобрения администратором
- Что дает регистрация
#### 🎰 Участие в розыгрышах
- Как принять участие в розыгрыше
- Что указано в описании розыгрыша
- Как узнать о результатах
- Что делать при выигрыше
#### 💬 Чат
- Вход и выход из чата
- Какие сообщения можно отправлять (текст, фото, видео, документы, стикеры)
- Правила чата
- Управление чатом для админов
#### ⚙️ Команды
- Список всех доступных команд бота
- Описание каждой команды
- Для админов - дополнительные админские команды
- Полезные советы по использованию
**Доступ к справке:**
- Кнопка `❓ Справка` в главном меню
- Команда `/help` в любой момент
- Интерактивная навигация между разделами
**Особенности:**
- 📱 Адаптивный контент (админы видят дополнительные команды)
- 🔄 Удобная навигация между разделами
- 🏠 Быстрый возврат в главное меню
- 📖 Подробные инструкции с примерами
**Файлы:**
- `src/handlers/help_handlers.py` - новый модуль справки (265 строк)
- `src/components/ui.py` - добавлена кнопка "❓ Справка" в главное меню
- `main.py` - зарегистрирован роутер справки
---
## 🔧 Технические детали
### Зависимости
```txt
openpyxl==3.1.2 # Работа с Excel файлами
```
### Новые файлы
- `src/handlers/help_handlers.py` - система справки
### Обновленные файлы
- `requirements.txt` - добавлена openpyxl
- `main.py` - регистрация help_router
- `src/handlers/admin_panel.py` - XLSX экспорт/импорт
- `src/handlers/chat_handlers.py` - обработка ключевых слов
- `src/components/ui.py` - кнопка справки в меню
### Роутеры
```python
# Порядок регистрации роутеров:
1. main router (базовые команды)
2. message_admin_router
3. admin_router
4. registration_router
5. admin_account_router
6. admin_chat_router
7. redraw_router
8. p2p_chat_router
9. help_router # ← НОВЫЙ
10. chat_router
11. account_router
```
---
## 📊 Статистика изменений
- **Новые файлы:** 1 (help_handlers.py)
- **Измененные файлы:** 4 (admin_panel.py, chat_handlers.py, ui.py, main.py)
- **Новые зависимости:** 1 (openpyxl)
- **Новые команды:** 1 (/help)
- **Новые обработчики:** 6 (помощь + ключевые слова)
- **Строк кода добавлено:** ~400
---
## ✅ Тестирование
### Проверено:
- ✅ Бот успешно запускается
- ✅ Контейнер пересобран с новыми зависимостями
- ✅ Справка доступна из главного меню
- ✅ Кнопка "❓ Справка" работает (подтверждено логами)
- ✅ Обработчик help_main вызывается корректно
- ✅ Нет ошибок компиляции в новом коде
### Требуется протестировать:
- ⏳ Экспорт пользователей в XLSX
- ⏳ Импорт пользователей из XLSX
- ⏳ Обработка команд start/старт в чате
- ⏳ Навигация по всем разделам справки
---
## 🎯 Итоги
Все три запрошенные функции успешно реализованы:
1.**XLSX экспорт/импорт** - удобная работа с данными пользователей
2.**Обработка start в чате** - быстрый возврат в главное меню
3.**Система справки** - полноценная помощь для пользователей
Бот готов к использованию новых функций! 🚀