Привет, Хабр! Я хочу поделиться своим опенсорс-проектом, который вырос из личной потребности в автоматизации и превратился в мощный инструмент для всех продавцов на площадке FunPay. Речь пойдет о FunPay Cortex — Telegram-боте на Python, который берет на себя всю рутину.
Если вы когда-либо торговали на FunPay или подобных площадках, то знаете, сколько времени уходит на однотипные действия: ответы на сообщения, выдача товара, поднятие лотов в поиске, постоянная проверка статуса онлайн. В какой-то момент я понял, что хочу заниматься развитием, а не рутиной. Так и родился этот проект.
Сегодня я расскажу о его архитектуре, ключевых возможностях и о том, как он может быть полезен не только продавцам, но и разработчикам.
🚩 Проблема: Ручной труд убивает время и мотивацию
Стандартный день продавца на FunPay выглядит примерно так:
Получить заказ. Уведомления приходят, но нужно быстро реагировать.
Выдать товар. Скопировать ключ, логин/пароль или инструкцию из файла и отправить покупателю.
Ответить на вопросы. Постоянные "тут?", "в наличии?", "как купить?".
Поднять лоты. Каждые несколько часов заходить и нажимать заветную кнопку, чтобы быть в топе выдачи.
Ответить на отзывы. Благодарить за хорошие, обрабатывать негатив.
Быть "онлайн". Постоянно держать вкладку открытой, чтобы не терять клиентов.
Всё это отнимает колоссальное количество времени. Cortex был создан, чтобы решить эти проблемы.
🧠 Архитектура: Модульный подход
Я с самого начала решил делать проект расширяемым и модульным, чтобы не превращать его в монолитного монстра. В итоге архитектура выглядит так:
FunPayAPI — Сердце проекта. Это полностью независимая библиотека для взаимодействия с FunPay. Она не содержит никакой бизнес-логики бота, а лишь предоставляет удобный Python-интерфейс для работы с сайтом. Написана с использованием requests
и BeautifulSoup
, она парсит HTML, отправляет запросы и обрабатывает ответы. Её можно использовать в любом другом проекте.
Cortex Core — Мозг. Это ядро, которое связывает все компоненты. Оно использует FunPayAPI
для получения событий (новые сообщения, заказы) с помощью runner.listen()
и запускает соответствующие обработчики. Ядро также управляет состоянием, конфигурацией и плагинами.
Telegram-бот — Пульт управления. Зачем писать GUI или веб-интерфейс, когда есть Telegram? Весь бот полностью управляется через интуитивно понятное меню с кнопками. Можно редактировать автоответы, загружать товары для автовыдачи, смотреть статистику, управлять пользователями — и всё это с телефона.
Плагины — Бесконечная расширяемость. Самая мощная часть. Любой разработчик может написать свой .py
файл, добавить в него несколько обязательных полей (имя, версия, UUID) и привязать свои функции к событиям Cortex. Это позволяет создавать кастомные уведомления, и