# 🧪 Инструкции по тестированию бота ## 🎯 Что было исправлено: ### 1. ✅ Исправлены callback_data значения - **Проблема**: Callback_data отправлялись как `"CallbackType.MANAGE_MESSAGES"` вместо `"manage_messages"` - **Решение**: Изменили с `str(CallbackType.X)` на `CallbackType.X.value` везде в коде - **Затронуто**: 13+ мест в файлах: - `app/utils/keyboards.py` - `app/handlers/callbacks.py` - `app/handlers/message_manager.py` ### 2. ✅ Реализован Telethon UserBot для парсинга групп - **Новый метод**: `get_user_groups()` в `TelethonClientManager` - **Новая команда**: `/sync_groups` для синхронизации групп - **Что делает**: - Получает все группы и супергруппы из UserBot сессии - Извлекает информацию: ID, название, slow_mode, количество участников - Автоматически добавляет новые группы в БД - Обновляет информацию существующих групп ## 📝 План тестирования: ### Тест 1: Проверка callback'ов (кнопок) 1. Отправить боту `/start` 2. Убедиться что получено главное меню с кнопками: - 📨 Сообщения - 👥 Группы 3. Кликнуть на каждую кнопку и проверить: - Интерфейс переключается правильно - Не видно ошибок в логах - **Ожидается**: Logs покажут "🔘 Получена кнопка MANAGE_MESSAGES" (или другое имя) ### Тест 2: Синхронизация групп через Telethon 1. Убедиться что UserBot добавлен в группы (пригласить его туда) 2. Отправить боту `/sync_groups` 3. **Ожидается**: - Сообщение с прогрессом: "⏳ Синхронизирую группы..." - Финальное сообщение с результатами: ``` ✅ Синхронизация завершена! 📊 Результаты: • ➕ Добавлено: N • ✏️ Обновлено: M • 📈 Всего в БД: ... ``` 4. Проверить логи: ``` ✅ Получено X групп от Telethon ✅ Добавлена группа: "Название группы" (ID: -100...) ``` ### Тест 3: Создание и отправка сообщения 1. `/start` → Кликнуть "📨 Сообщения" 2. Кликнуть "➕ Новое сообщение" 3. Введите название и текст сообщения 4. Выберите группы из списка 5. Кликнуть "Отправить" 6. **Проверить**: - Сообщение появилось в выбранных группах - Логи показывают успешную отправку - Учитывается slow_mode каждой группы ## 🐛 Что смотреть в логах: ### Успешные логи: ``` ✅ Telethon клиент инициализирован: ... ✅ Получено X групп от Telethon ✅ Добавлена группа: "Название" (ID: -100...) 🔘 Получена кнопка MANAGE_MESSAGES от пользователя 556399210 📤 Сообщение отправлено в группу -100... ``` ### Ошибки (требуют внимания): ``` ❌ Telethon клиент не инициализирован ❌ Ошибка при получении групп: ... ❌ Ошибка при отправке сообщения: ... ``` ## 📊 Проверка БД ```bash # Заходим в контейнер docker-compose exec postgres psql -U telegram -d tg_autoposter # Проверяем группы SELECT id, chat_id, title, slow_mode_delay FROM groups; # Проверяем сообщения SELECT id, title, is_active FROM messages; # Проверяем связи (какие сообщения в каких группах) SELECT * FROM message_groups; ``` ## ✨ Ожидаемые результаты: 1. **Callback обработчики работают** → Кнопки переключают интерфейс 2. **UserBot парсит группы** → `/sync_groups` находит и сохраняет группы 3. **Сообщения отправляются** → Текст появляется в выбранных группах с учетом slow_mode --- **Статус на 2025-12-21:** - ✅ Исправлены callback_data значения (Enum.value) - ✅ Реализовано парсинг групп через Telethon - ✅ Команда `/sync_groups` готова к использованию - ⏳ Ожидается тестирование от пользователя