fix: исправлены импорты и добавлен планировщик рассылки
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Some checks reported errors
continuous-integration/drone/push Build encountered an error
- Исправлены импорты: database → src.core.database, config → src.core.config - Заменены async for get_session() на async with async_session_maker() - Добавлен планировщик для пакетной рассылки сообщений (BATCH_SIZE=20, BATCH_DELAY=1.0s) - Исправлено использование is_registered вместо is_active для фильтрации пользователей - Реализована защита от блокировки Telegram при массовой рассылке Изменения: - src/handlers/chat_handlers.py: добавлен broadcast_message_with_scheduler - src/handlers/admin_chat_handlers.py: исправлены импорты и использование сессий
This commit is contained in:
137
docs/CHAT_QUICKSTART.md
Normal file
137
docs/CHAT_QUICKSTART.md
Normal file
@@ -0,0 +1,137 @@
|
||||
# Быстрый старт: Система чата
|
||||
|
||||
## Что реализовано
|
||||
|
||||
✅ **Два режима работы:**
|
||||
- Broadcast: сообщения рассылаются всем пользователям
|
||||
- Forward: сообщения пересылаются в канал/группу
|
||||
|
||||
✅ **7 типов сообщений:** text, photo, video, document, animation, sticker, voice
|
||||
|
||||
✅ **Система банов:**
|
||||
- Личные баны пользователей с причиной
|
||||
- Глобальный бан (закрытие чата для всех кроме админов)
|
||||
|
||||
✅ **Модерация:** удаление сообщений с отслеживанием
|
||||
|
||||
## Быстрая настройка
|
||||
|
||||
### 1. Режим рассылки (broadcast)
|
||||
|
||||
```bash
|
||||
# Админ отправляет команду:
|
||||
/chat_mode
|
||||
# → Нажимает "📢 Рассылка всем"
|
||||
|
||||
# Готово! Теперь сообщения пользователей рассылаются друг другу
|
||||
```
|
||||
|
||||
### 2. Режим пересылки (forward)
|
||||
|
||||
```bash
|
||||
# Шаг 1: Создайте канал и добавьте бота как админа
|
||||
|
||||
# Шаг 2: Узнайте chat_id канала:
|
||||
# - Напишите в канале сообщение
|
||||
# - Перешлите его @userinfobot
|
||||
# - Скопируйте chat_id (например: -1001234567890)
|
||||
|
||||
# Шаг 3: Установите канал
|
||||
/set_forward -1001234567890
|
||||
|
||||
# Шаг 4: Переключите режим
|
||||
/chat_mode
|
||||
# → Нажимает "➡️ Пересылка в канал"
|
||||
|
||||
# Готово! Сообщения пользователей пересылаются в канал
|
||||
```
|
||||
|
||||
## Команды модерации
|
||||
|
||||
```bash
|
||||
# Забанить пользователя (ответ на сообщение)
|
||||
/ban Причина бана
|
||||
|
||||
# Забанить по ID
|
||||
/ban 123456789 Спам
|
||||
|
||||
# Разбанить
|
||||
/unban # (ответ на сообщение)
|
||||
/unban 123456789
|
||||
|
||||
# Список банов
|
||||
/banlist
|
||||
|
||||
# Закрыть/открыть чат для всех
|
||||
/global_ban
|
||||
|
||||
# Удалить сообщение из всех чатов
|
||||
/delete_msg # (ответ на сообщение)
|
||||
|
||||
# Статистика чата
|
||||
/chat_stats
|
||||
```
|
||||
|
||||
## Структура БД
|
||||
|
||||
```
|
||||
chat_settings (1 строка)
|
||||
├── mode: 'broadcast' | 'forward'
|
||||
├── forward_chat_id: ID канала (если forward)
|
||||
└── global_ban: true/false
|
||||
|
||||
banned_users
|
||||
├── telegram_id: ID забаненного
|
||||
├── banned_by: кто забанил
|
||||
├── reason: причина
|
||||
└── is_active: активен ли бан
|
||||
|
||||
chat_messages
|
||||
├── user_id: отправитель
|
||||
├── message_type: тип сообщения
|
||||
├── text: текст или caption
|
||||
├── file_id: ID файла
|
||||
├── forwarded_message_ids: {user_id: msg_id} (JSONB)
|
||||
├── is_deleted: удалено ли
|
||||
└── deleted_by: кто удалил
|
||||
```
|
||||
|
||||
## Файлы
|
||||
|
||||
| Файл | Описание | Строк |
|
||||
|------|----------|-------|
|
||||
| `migrations/versions/005_add_chat_system.py` | Миграция БД | 108 |
|
||||
| `src/core/models.py` | Модели ORM (+67) | - |
|
||||
| `src/core/chat_services.py` | Сервисы | 267 |
|
||||
| `src/handlers/chat_handlers.py` | Обработчики сообщений | 447 |
|
||||
| `src/handlers/admin_chat_handlers.py` | Админ команды | 369 |
|
||||
| `docs/CHAT_SYSTEM.md` | Полная документация | 390 |
|
||||
|
||||
## Следующие шаги
|
||||
|
||||
1. **Тестирование:**
|
||||
- Проверить broadcast режим с разными типами сообщений
|
||||
- Проверить forward режим с каналом
|
||||
- Протестировать баны и разбаны
|
||||
- Проверить удаление сообщений
|
||||
|
||||
2. **Опциональные улучшения:**
|
||||
- Фильтрация контента (мат, спам)
|
||||
- Лимиты сообщений (антиспам)
|
||||
- Ответы на сообщения
|
||||
- Реакции на сообщения
|
||||
- История чата через команду
|
||||
|
||||
## Коммит
|
||||
|
||||
```bash
|
||||
git log --oneline -1
|
||||
# b6c27b7 feat: добавлена система чата с модерацией
|
||||
|
||||
# Ветка: feature/chat-system
|
||||
# Изменений: 7 файлов, 1592 строки добавлено
|
||||
```
|
||||
|
||||
## Полная документация
|
||||
|
||||
Смотрите: [docs/CHAT_SYSTEM.md](./CHAT_SYSTEM.md)
|
||||
Reference in New Issue
Block a user