Полное ТЗ в файлах
Техническое задание на разработку AutoCRMBot
1. Название проекта
**AutoCRMBot** система автоматической покупки заявок на бирже с уведомлениями в Telegram.
2. Цель проекта
Создание программы, которая автоматически авторизуется на сайте, отслеживает и покупает заявки из Москвы на бирже заявок, а также отправляет уведомления о действиях в Telegram.
3. Функциональные требования
3.1. Авторизация и управление сессией
3.1.1. Приём логина и пароля от аккаунта через конфигурационный файл.
3.1.2. Автоматический вход на сайт.
3.1.3. Обработка случаев неудачной авторизации с уведомлением в Telegram.
3.1.4. Сохранение и поддержание активной сессии.
3.1.5. Автоматическое восстановление сессии при разрыве соединения.
3.2. Мониторинг биржи заявок
3.2.1. Автоматический переход на страницу "Биржа заявок".
3.2.2. Постоянный мониторинг появления новых заявок с интервалом 1-5 секунд.
Система должна отслеживать последний обнаруженный номер заявки в бирже.
3.2.2.1 После обнаружения заявки с номером N, система должна дополнительно проверять следующие 2-3 адресные строки (заявки с номерами N+1, N+2, N+3).
3.2.2.2. Проверка должна осуществляться путем прямого перехода на URL-адреса потенциальных заявок.
3.2.3.4. Если заявка с одним из следующих номеров существует и соответствует всем критериям фильтрации, система должна немедленно ее приобрести.
3.2.3.5. Алгоритм должен учитывать возможные пропуски в нумерации (например, если заявка N+1 не существует, проверять N+2 и т.д.).
3.2.3. Фильтрация заявок по следующим критериям:
3.2.3.1. Цена: только заявки выше 200 рублей (параметр настраивается в конфигурационном файле).
3.2.3.2. Операторы (высшего приоритета): заявки от этих операторов должны приобретаться в первую очередь, даже если одновременно появляются другие подходящие заявки.(названия могут отличаться на сайте, требуется проверка по сходству):
3.2.3.2.1. Coral Travel
3.2.3.2.2. Anex-Tour
3.2.3.2.3. Интурист
3.2.3.2.4. Fun&Sun
3.2.3.2.5. Sunmar
3.2.3.2.6. БиблиоГлобус
3.2.3.2.7. Пегас Туристик
3.2.3.3. Операторы второго приоритета (суточный лимит 2-3 заявки): для следующих операторов установить суточный лимит покупки (названия могут отличаться, требуется проверка по сходству):
3.2.3.3.1. Ambotis
3.2.3.3.2. ICS
3.2.3.3.3. Loti
3.2.3.3.4. Melino
3.2.3.3.5. Paks
3.2.3.3.6. Resort Holiday
3.2.3.3.7. Space Travel
3.2.3.3.8. Alean (Алеан)
3.2.3.3.9. Русский Экспресс
3.2.3.4. Географический фильтр:
3.2.3.4.1. Брать заявки: все заявки из всех регионов и городов России.
3.2.3.4.2. Не брать заявки: любые заявки из других стран (не России).
3.2.3.5. Режим работы:
3.2.3.5.1. Круглосуточная работа в фоновом режиме.
3.2.3.5.2. С 22:00 до 10:00 покупка только тех заявок, у которых в поле "срок пребывания" начальная дата больше или равна 14 дням от текущей даты.
3.2.3.6. Тип перелёта: не брать заявки с регулярными рейсами. Для проверки необходимо переходить на страницу
, нажав на ссылку Тур в TourIndex в поле Тур и анализировать поле "Тип перелёта". Если встречается регулярный рейс, то заявку не брать
3.2.3.7 Не брать заявки с неправильного телефона, которые не в маске 8(xxx) 7(xxx) +7(xxx)
3.3. Автоматическая покупка заявок
3.3.1. Мгновенная покупка заявки (в течение 1 секунды после появления), соответствующей всем условиям фильтрации.
3.3.2. Нажатие на кнопку "Взять заявку себе".
3.3.3. Подтверждение покупки при необходимости (например, если появляется подтверждающее окно).
3.4. Уведомления в Telegram
3.4.1. Конфигурация Telegram
3.4.1.1. Настройка TelegramBotToken через конфигурационный файл.
3.4.1.2. Настройка Chat ID пользователя или группы.
3.4.1.3. Проверка доступности Telegram API при запуске программы.
3.4.1.4. Шифрованное хранение конфиденциальных данных (токен, Chat ID, логин и пароль от travelcrm.ru).
3.4.2. События для уведомлений
3.4.2.1. Успешный запуск программы (при старте):
3.4.2.1.1. Время запуска.
3.4.2.1.2. Статус подключения к сайту.
3.4.2.1.3. Статус подключения к Telegram.
3.4.2.2. Покупка новой заявки (мгновенно при покупке):
3.4.2.2.1. Формат: `## Заявка [ID] КУПЛЕНА`.
3.4.2.3. Ошибки и проблемы (мгновенно при возникновении):
3.4.2.3.1. Ошибка авторизации на сайте.
3.4.2.3.2. Проблемы с подключением к сайту.
3.4.2.3.3. Ошибка при покупке заявки.
3.4.2.3.4. Изменение структуры сайта (например, если не удалось найти необходимые элементы).
3.4.2.3.5. Превышение лимитов запросов.
3.5. Дополнительные требования
3.5.1. Программа должна быть устойчива к изменениям интерфейса сайта (рекомендуется использовать гибкие селекторы и механизмы повторных попыток).
3.5.2. Необходимо предусмотреть логирование всех ключевых действий и ошибок для последующего анализа.
3.5.3. Конфигурационный файл должен быть структурированным и понятным, с комментариями для каждого параметра.