Техническое задание (ТЗ) для разработки Telegram-бота, который находит группы без капчи для рассылки объявлений
1. Цель проекта
Цель — создание Telegram-бота, который автоматически осуществляет поиск публичных групп на основе ключевых слов, проверяет наличие капчи при вступлении в группу, и предоставляет пользователю список групп, где возможно размещение объявлений без подтверждения капчи.
2. Основные функции
1. Поиск групп по ключевым словам:
• Бот должен выполнять поиск публичных групп в Telegram на основе ключевых слов, введенных пользователем.
• Необходимо реализовать функцию автоматического сбора информации о найденных группах.
2. Проверка наличия капчи:
• После поиска бот проверяет возможность вступления в каждую найденную группу без прохождения капчи. Если капча присутствует, бот сообщает об этом пользователю.
• Автоматическая обработка групп для выявления наличия капчи перед вступлением в группу.
3. Хранение результатов:
• Хранить найденные группы в базе данных с отметками о наличии/отсутствии капчи.
• Повторное использование сохраненных групп для ускорения поиска при повторных запросах.
4. Управление пользователями:
• Бот должен поддерживать несколько уровней доступа: пользователи (с возможностью поиска групп) и администраторы (для управления и проверки работы бота).
5. Взаимодействие с API капчи:
• Интеграция с сервисами капчи (например, 2Captcha или AntiCaptcha) для автоматической проверки капчи при вступлении в группу.
6. Уведомления пользователей:
• Вывод результатов поиска в виде списка доступных групп с информацией о возможности рассылки без капчи.
• Возможность повторного просмотра списка доступных групп по запросу пользователя.
3. Архитектура системы
1. Telegram API:
• Бот интегрируется с официальным API Telegram для поиска публичных групп, сбора информации о них и проверки капчи.
2. База данных:
• Для хранения информации о найденных группах используется база данных (например, NoSQL или SQL), где фиксируются статусы проверок капчи, количество участников группы и другие метаданные.
3. API для проверки капчи:
• Интеграция с внешними API для автоматического решения капчи при вступлении в группу. Бот должен отправлять запросы к сервисам, таким как 2Captcha или AntiCaptcha, и получать результат проверки.
4. Кэширование и оптимизация:
• Для оптимизации повторных запросов стоит использовать кэширование результатов поиска групп и капчи. Это позволит уменьшить нагрузку на сервер и повысить скорость обработки запросов.
4. Основные компоненты системы
1. Пользовательский интерфейс:
• Интуитивно понятный текстовый интерфейс, через который пользователь может выполнять поиск групп с помощью команд.
• Пример команд:
• /search <ключевые слова> — поиск групп по ключевым словам.
• /list — просмотр списка групп, где можно размещать объявления без капчи.
• /captcha_check <group_id> — ручная проверка группы на капчу.
2. База данных:
• Таблица групп, которая содержит такие поля:
• Название группы.
• Количество участников.
• Ссылка на группу.
• Статус капчи (наличная или отсутствующая).
• Дата последней проверки.
3. Административная панель:
• Администраторы могут управлять ботом: запускать проверку групп, добавлять или удалять группы вручную, настраивать частоту проверок.
5. Модели данных
1. Группа:
• Название группы: строка.
• Ссылка на группу: строка.
• Количество участников: число.
• Статус капчи: булевое значение (true/false).
• Дата последней проверки: дата.
2. Пользователь:
• ID пользователя: уникальный идентификатор пользователя.
• Имя пользователя: строка.
• Уровень доступа: пользователь или администратор.
6. Безопасность
1. Шифрование данных:
• Вся взаимодействие между ботом и сервером должно быть защищено (использование HTTPS).
2. Аутентификация администратора:
• Доступ к административным функциям должен быть защищен паролем или токеном для избежания несанкционированного доступа.
7. Тестирование
1. Модульное тестирование:
• Для каждого отдельного компонента бота должны быть созданы модульные тесты (поиск групп, проверка капчи, сохранение данных в базе).
2. Стресс-тестирование:
• Тестирование нагрузки для проверки устойчивости системы при одновременной работе многих пользователей.
3. Тестирование интеграций:
• Тестирование интеграции с Telegram API и сервисами капчи для проверки правильности взаимодействия между компонентами системы.
8. Возможные риски
1. Изменения в Telegram API:
• Telegram может изменять условия использования API, поэтому нужно быть готовым к быстрой адаптации бота.
2. Ограничения на использование капчи:
• Сервисы капчи могут вводить ограничения на количество запросов, что требует оптимизации и использования кэширования для уменьшения нагрузки.
9. План внедрения
1. Фаза 1 (1-2 недели): Реализация основного функционала поиска групп и проверки на капчу.
2. Фаза 2 (2-3 недели): Интеграция с базой данных, сохранение и кэширование результатов.
3. Фаза 3 (1-2 недели): Административная панель, настройка прав доступа и безопасности.
4. Фаза 4 (1-2 недели): Тестирование, отладка и подготовка к запуску.
10. Поддержка
После внедрения бота необходимо предусмотреть поддержку и обновление системы, особенно в случае изменений в Telegram API или сервисах капчи.