Необходимо написать бота для телеграм со следующими функционалом:<br><br>Общее описание<br><br><br>Необходимо разработать Telegram-бота на языке программирования Python с использованием фреймворков aiogram или pyTelegramBotAPI. Бот будет предоставлять пользователям возможность искать автозапчасти одновременно на трёх ресурсах: Exist.ru, Avtoto.ru, Autodoc.ru. Для доступа к функционалу будет предусмотрена система платных подписок, тестовый бесплатный период, а также возможность использования реферальной программы. В боте также будет предусмотрено администраторское управление пользователями и рассылками.<br><br><br><br>---<br><br><br>Функциональные требования<br><br><br>1. Основные функции<br><br><br>1. Поиск запчастей:<br><br><br>Возможность искать автозапчасти по:<br><br><br>Марке и модели автомобиля с указанием года выпуска.<br><br><br>VIN-номеру автомобиля.<br><br><br>Серийному номеру искомой запчасти.<br><br><br><br>Для каждого запроса предоставлять:<br><br><br>Точные ссылки на найденные запчасти.<br><br><br>Стоимость запчастей.<br><br><br>Краткую информацию о запчасти.<br><br><br>Отзывы и общую оценку по данным ресурса.<br><br><br><br>Используемые ресурсы для парсинга:<br><br><br>Exist.ru<br><br><br>Avtoto.ru<br><br><br>Autodoc.ru<br><br><br><br><br><br>2. Система подписок:<br><br><br>Тестовый бесплатный период.<br><br><br>Ограничение функционала после окончания бесплатного периода.<br><br><br>Платная подписка с возможностью рекуррентных платежей через Робокассу.<br><br><br>Возможность администратору вручную назначать подписку пользователям.<br><br><br><br><br>3. Реферальная система:<br><br><br>Пользователь может приглашать друзей через реферальную ссылку.<br><br><br>Приобретение платной подписки приглашённым другом добавляет рефереру бесплатный период использования.<br><br><br><br><br>4. История запросов:<br><br><br>Хранение истории поисковых запросов каждого пользователя.<br><br><br>Возможность просмотра и повторного использования запросов.<br><br><br><br><br>5. Профиль пользователя:<br><br><br>Хранение контактной информации пользователя: номер телефона, имя, фамилия и никнейм.<br><br><br>Возможность просматривать текущий статус подписки.<br><br><br><br><br>6. Поддержка:<br><br><br>Кнопка для обращения в службу поддержки (в виде отправки сообщения администратору).<br><br><br><br><br>7. Рассылка администратора:<br><br><br>Возможность массовой рассылки сообщений всем активным пользователям бота.<br><br><br><br><br><br>2. Меню бота<br><br><br>Кнопки основного меню:<br><br><br>Поиск запчасти.<br><br><br>Мой профиль.<br><br><br>История запросов.<br><br><br>Поддержка.<br><br><br>---<br><br><br>Технические требования<br><br><br>1. Архитектура бота<br><br><br>Использовать aiogram или pyTelegramBotAPI для обработки запросов.<br><br><br>Использовать многопоточность для обработки параллельных запросов.<br><br><br>Парсинг данных с сайтов реализовать через BeautifulSoup или Scrapy.<br><br><br><br>2. Хранение данных<br><br><br>Использовать PostgreSQL для хранения:<br><br><br>Истории запросов.<br><br><br>Пользовательской информации.<br><br><br>Статусов подписки.<br><br><br>Реферальных данных.<br><br><br><br>3. Администрирование<br><br><br>Панель для администратора в боте с функциями:<br><br><br>Просмотр списка пользователей.<br><br><br>Назначение подписки.<br><br><br>Создание и отправка рассылок.<br><br><br><br>4. Интеграция с платежной системой<br><br><br>Использовать Робокассу для оплаты подписки:<br><br><br>Настроить рекуррентные платежи.<br><br><br>Хранить статусы транзакций в базе данных.<br><br><br><br>5. Логи и мониторинг<br><br><br>Логирование всех запросов и ошибок.<br><br><br>Настройка мониторинга сервера через Prometheus или аналогичный инструмент.<br><br><br>---<br><br><br>Нефункциональные требования<br><br><br>1. Производительность:<br><br><br>Поддержка одновременной работы до 500 активных пользователей.<br><br><br><br>2. Масштабируемость:<br><br><br>Возможность расширения функционала и добавления новых ресурсов для парсинга.<br><br><br><br>3. Надежность:<br><br><br>Гарантированное обновление информации при запросах с минимальной задержкой.<br><br>---<br><br><br>Итог<br><br><br>На основе описанного функционала и требований, бот будет предоставлять пользователям удобный инструмент для поиска запчастей, обеспечивать доступ к платным функциям через подписки, а также обладать реферальной программой и возможностью администрирования.<br><br><br>