Техническое задание: Многоаккаунтный Telegram-бот для сбора аудитории
1. Цель проекта
Разработать Telegram-бота для автоматического взаимодействия с новыми участниками групповых чатов. Основная цель - первичный контакт с потенциальными клиентами через личные сообщения и систематизация собранных данных.
2. Основной функционал
2.1. Работа в групповых чатах
- Бот должен корректно добавляться и функционировать в Telegram-группах и супергруппах.
- Автоматическое отслеживание событий входа новых участников.
- Фиксация следующих данных о каждом новом пользователе:
- User ID
- Username (если есть)
- Имя и фамилия
- ID чата (Chat ID)
- Название чата
- Дата и время входа
2.2. Автоматическое приветствие в ЛС
- При обнаружении нового участника чата бот проверяет возможность отправки ему личного сообщения.
- Если личные сообщения пользователя открыты, бот отправляет заранее заданное приветствие.
- Текст приветственного сообщения должен быть настраиваемым через команды бота или конфигурационный файл.
- Фиксация статуса отправки (успешно/не удалось) в общую базу.
2.3. Многоаккаунтная работа
- Реализация работы не с одним, а с несколькими Telegram user-аккаунтами.
- Функционал для администратора по добавлению и удалению аккаунтов из системы.
- Автоматическое переключение между активными аккаунтами для распределения нагрузки и обхода ограничений.
- Автоматический мониторинг состояния аккаунтов. При обнаружении блокировки или ошибок отправки, аккаунт помечается как неактивный.
2.4. Управление и мониторинг
- Все управление осуществляется через Telegram-интерфейс (веб-панель не требуется).
- Необходимые команды:
- Включение/выключение автоматической рассылки.
- Установка и изменение текста приветственного сообщения.
- Просмотр списка всех подключенных аккаунтов с их текущим статусом (Активен/Ошибка/Заблокирован).
- Запрос и получение Excel-файла с собранными данными.
2.5. Экспорт данных
- Сохранение всей информации о зафиксированных пользователях в структурированную базу.
- Возможность выгрузки данных в файл формата .xlsx (Excel) по команде администратора.
- Минимальный набор колонок для выгрузки:
- User ID
- Username
- Chat ID
- Название чата
- Дата и время входа
- Статус отправки приветствия
3. Технические требования
- Язык программирования: Python.
- Использование официальной Telegram API (библиотека pyrogram или telethon).
- Надежное хранение данных (предпочтительно SQLite или PostgreSQL).
- Код должен быть чистым, документированным и готовым к развертыванию.
4. Что НЕ входит в задачу
- Создание веб-интерфейса или административной панели.
- Разработка сложных аналитических отчетов или интеграций со сторонними CRM-системами.
- Дизайн интерфейсов или графических элементов.