- 20
- 4
Странно, сейчас вышла новая версия должно все работать
сейчас все работает
не тестилРаботают ли плагины для кардинала в этом боте?
Хорошо, сделаю при некст апдейтезалей на гугл, на меге бесконечноя расшифровка или инициализация
нет, данная функция в разработкеРаботают ли плагины для кардинала в этом боте?
сейчас после апдейта даРаботают ли плагины для кардинала в этом боте?
ужезалей на гугл, на меге бесконечноя расшифровка или инициализация
Чтобы ты не ебался с MEGA-GOOGLE, просто залей на гитхаб
FunPay Bot
Магазин на автопилоте. Управление из Telegram
Выдаёт товар сразу после оплаты · поднимает лоты · держит цену по рынку · отвечает покупателям.
Работает 24/7 на ПК, сервере, хостинге и прямо на телефоне. Переживает сбои FunPay.
Python 3.12aiogram 3async SQLAlchemyDocker
Что умеет
- Автовыдача: ключи/аккаунты/текст уходят покупателю в чат сразу после оплаты. Несколько позиций в заказе, склад с проверкой наличия, безлимитные товары.
- Каталог 1₽: массовое выставление дешёвых лотов одной кнопкой и снятие их обратно.
- Автоподнятие лотов по интервалам с рандомом, отдельно на каждый лот. Корректно работает с мультикатегориями.
- Автоцена: сам сканирует конкурентов и держит цену по рынку. Среднее / медиана / дешевле всех, границы мин-макс, отсев мусорных лотов.
- Автоответчик с шаблонами и переменными, приветствие, режим «не в сети», чёрный список.
- Чаты и CRM в Telegram: вся переписка с покупателями в панели, на каждого клиента карточка: заметки, теги, история заказов и сколько всего он принёс. Быстрые шаблоны ответов в один тап и очередь проблемных заказов (оплачено, но не выдано). Всё без захода на FunPay.
- Переезд с FunPayCardinal: импорт настроек прямо из файлов Cardinal (автоответы, шаблоны выдачи, флаги, golden_key). Просто пришлите
.cfgботу в чат.- Подпись сообщений: своя вотермарка в конце каждого сообщения покупателю, как в Cardinal.
- Автосинхронизация лотов: свои лоты сами подтягиваются с FunPay в базу, без ручной кнопки.
- Автоответ на отзыв: благодарность покупателю сразу после оставленного отзыва, свой текст на каждую оценку от 1 до 5 звёзд.
- Возврат за плохой отзыв: низкая оценка на дешёвом заказе, и бот сам оформляет возврат, извиняется покупателю и сообщает вам. Пороги по сумме и звёздам свои (v6.1).
- Лист ожидания: спросили про товар, которого нет, бот запомнит человека и сам напишет ему, когда товар появится (v6.1).
- Присмотр за диалогами: покупатель ждёт ответа дольше 15 минут, и бот напомнит вам в Telegram, а через час напомнит ещё раз (v6.1).
- Автовосстановление и автодеактивация лота по остатку склада.
- Отчёты с графиками прямо в Telegram: продажи по дням, топ товаров, остатки, профиль покупателя. Экспорт в CSV/Excel, ежедневная сводка, монитор баланса, вотчер склада, цели по продажам.
- Прогноз склада: считает скорость продаж и подсказывает, когда закончится каждый товар (и шлёт алерт заранее, пока ещё есть запас). Не тупой порог «осталось N», а реальный ETA по спросу.
- Часы продаж: аналитика, в какие часы и дни недели реально покупают, чтобы ловить пик поднятиями.
- Роли доступа (owner / admin / moderator / viewer), мультиаккаунт, плагины, автобэкапы, авто-рестарт сервисов.
- Плагины Cardinal без правок: готовые плагины FunPayCardinal просто кидаются в папку и работают, вместе со своими Telegram-командами и настройками (v6.0).
- Инструменты: пул прокси с авто-переключением, риск-контроль заказов, автоповтор сорвавшейся выдачи, маршруты уведомлений с тихими часами, цены по времени суток, автоперевод, история цен конкурентов, локальный API с вебхуками.
Установка
Работает на Windows, Linux, на сервере (VPS), на хостинге и прямо на телефоне (Android/Termux), без ПК. Заполняете.envодин раз (BOT_TOKEN,ADMIN_IDS,FUNPAY_GOLDEN_KEY) и запускаете. Если запускаете в терминале и.envещё нет, бот сам спросит всё по шагам и запишет файл за вас.
Не запускается, а причина непонятна? Сначалаpython scripts/doctor.py: проверит библиотеки, настройки, базу, права на запись, связь с Telegram и FunPay, часовой пояс и место на диске, и скажет, что именно не так.
Логи:Код:cd funpay_bot cp .env.example .env # заполнить BOT_TOKEN, ADMIN_IDS, FUNPAY_GOLDEN_KEY docker compose up -ddocker compose logs -f bot. Обновление:git pull && docker compose up -d --build.
По умолчанию поднимается только бот с SQLite, ничего лишнего. Данные, логи, бэкапы и плагины лежат в томах рядом, обновление образа их не тронет. Нужен PostgreSQL рядом, допишите в.envстрокуDATABASE_URL=postgresql+asyncpg://funpay:funpay@db:5432/funpayи запуститеdocker compose --profile pg up -d.
Поставьте Python 3.12 с python.org (галочка Add Python to PATH), затем в папке бота:
Код:python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt copy .env.example .env notepad .env python main.py
Чтобы бот работал 24/7 и сам перезапускался, поставьте сервис systemd:Код:chmod +x scripts/run.sh ./scripts/run.sh # создаст venv, поставит зависимости, попросит заполнить .env
Код:sudo cp scripts/funpay-bot.service /etc/systemd/system/ sudo nano /etc/systemd/system/funpay-bot.service # поправить User и пути sudo systemctl daemon-reload sudo systemctl enable --now funpay-bot journalctl -u funpay-bot -f # живые логи
1) Установите Termux с F-Droid (версия из Play Market устарела и не работает).
2) В Termux выполните:
Скрипт сам поставит Python и системные библиотеки, возьмёт wake-lock (бот не уснёт с выключенным экраном) и запустит бота. После первого запуска откройтеКод:pkg install -y git git clone <ссылка-на-репозиторий> funpay_bot cd funpay_bot bash scripts/install_termux.shnano .env, впишите ключи и сноваbash scripts/run.sh.
Совет: поставьте ещё приложение Termux:API и в настройках Android отключите оптимизацию батареи для Termux, тогда бот живёт сутками.
Бот это обычный долго живущий процесс без веб-сервера, ему нужен только исходящий интернет. Поэтому он спокойно живёт на хостинге, где нет своего сервера.
- Тип процесса: worker, не web.
Procfileуже в проекте, порт слушать не нужно.- Настройки задаются переменными окружения в панели хостинга. Обязательно добавьте
FUNPAY_NO_WIZARD=1(живого терминала там нет) и свойTZ, иначе «сутки» в отчётах будут по UTC.- Строку базы от хостинга (
postgres://user:pass@host:5432/db?sslmode=require) вставляйте вDATABASE_URLкак есть: бот сам подставит асинхронный драйвер и переведёт SSL в понятный вид.- Если файловая система только для чтения или обнуляется при деплое, укажите
DATA_DIR,LOGS_DIR,BACKUPS_DIRна постоянный диск, а базу держите в PostgreSQL.
После запуска отправьте/startв Telegram, дальше всё через меню: товары, лоты, автофункции.
funpay.com → F12 → Application/Storage → Cookies → скопировать значениеgolden_keyвFUNPAY_GOLDEN_KEY. Это полный доступ к аккаунту, никому не давайте.
FAQ
Да, перечислите ключи через запятую вFUNPAY_GOLDEN_KEY, на каждый поднимется свой runner.Бот ходит на FunPay как обычный браузер с вашим cookie, поднятия рандомизированы. Но автоматизация на ваш риск, держите разумные интервалы.По умолчанию SQLite, ничего менять не надо. Под нагрузку: PostgreSQL черезDATABASE_URL.
Плагины «из коробки»
Свой плагин это папка в
- smart_autoresponder: мгновенные ответы покупателю на типовые вопросы по ключевым словам. Команда
/faq_reload.- sales_dashboard: карточка продаж в реальном времени, средний чек, milestone'ы и рекорды.
/sales,/sales_reset.- anti_fraud_guard: сигнализация о попытках увести сделку с FunPay и развести.
/fraud_reload.- post_delivery_thanks: благодарность и просьба об отзыве после выдачи.
/thanks_reload.- loyalty_rewards: постоянным покупателям само уходит спасибо и скидка на следующий заказ по порогам покупок (2/5/10…).
/loyalty_reload.- vip_order_alert: громкий алерт о крупных заказах и заказах от постоянников.
/vip_reload.- promo_broadcast: рассылка акций в чаты недавних покупателей.
/promo,/promo_count.- competitor_watch: фоновый радар цен конкурентов, алерт о демпинге.
/market.- delivery_speed_monitor: тревога, если заказ висит невыданным дольше порога.
/pending_orders.- rating_monitor: слежение за рейтингом и новыми отзывами.
/rating.plugins/installed/сplugin.jsonи__init__.py: хукиon_new_order,on_delivery,on_new_message,on_order_paid,on_refundи свои Telegram-команды. Можно запускать фоновые задачи.
Плагины от FunPayCardinal (v6.0) работают без переписывания: положите.pyфайл вplugins/cardinal/, и плагин появится в списке с пометкой, вместе со своими командами, кнопками и страницей настроек. Поддержаны все 18 хуков
BIND_TO_*, объектcardinalи импортыFunPayAPI/tg_bot.
История версий
Апдейт про две вещи: чтобы бот не терял покупателей, и чтобы его можно было поставить почти куда угодно.
Автовозврат за плохой отзыв
Знакомая история: продал ключ за 40 ₽, что-то не сошлось, покупатель влепил одну звезду. Дальше либо спорить в переписке, либо возвращать руками, а рейтинг уже просел. Теперь бот делает это сам: увидел низкую оценку на дешёвом заказе, оформил возврат, написал покупателю извинение и сообщил вам в Telegram. Порог по сумме и по звёздам ваш (по умолчанию дешевле 100 ₽ и не выше 2 звёзд). Дешёвый заказ не стоит спора, а человек, которому молча вернули деньги, обычно возвращается.
Специально сделал осторожно: по умолчанию выключено, потому что это движение реальных денег. Возврат не сработает, если цена заказа неизвестна или равна нулю, а если FunPay возврат не принял, бот не трогает статус заказа и пишет вам, что нужно вмешаться.
Лист ожидания товара
Покупатель спрашивает «когда будет?», товара нет, вы отвечаете «завтра» и оба забываете. Теперь бот сам видит такой вопрос, понимает, о каком товаре речь, и записывает человека в очередь. Появился товар, он первым получает сообщение «снова в наличии». Никаких таблиц и напоминалок: люди, которые уже хотели купить, возвращаются сами. Тексты обоих сообщений свои, лимит подписок на чат настраивается.
Присмотр за диалогами
Покупатель написал, а ответа нет. Бот напомнит вам в Telegram через 15 минут, и повторно через час, если так и висит. Покупателю при этом ничего не отправляется, поэтому включено сразу. Заодно починил старую неприятность: если вы отвечали с сайта FunPay, а не из бота, диалог всё равно считался «без ответа». Теперь исходящие с сайта тоже учитываются (это же ломало и список чатов в панели).
Свой ответ на каждую оценку
Раньше автоответ на отзыв делился на «хороший» и «плохой». Теперь можно написать отдельный текст на 1, 2, 3, 4 и 5 звёзд. На пятёрку поблагодарить как следует, на тройку спросить, что улучшить. Пустые поля берут общий текст, так что настраивать всё пять не обязательно.
Ставится почти куда угодно
Главная просьба после 6.0 была «хочу на хостинг». Сделал:
- Адрес базы от хостинга (
postgres://…?sslmode=require) можно вставлять как есть: бот сам подставит асинхронный драйвер и переведёт SSL в свой вид. Раньше на этом спотыкались все, кто пробовал Railway или Render.- Каталоги данных, логов и бэкапов можно вынести куда угодно (
DATA_DIR,LOGS_DIR,BACKUPS_DIR), для хостингов, где корень проекта только для чтения.Procfileв комплекте: на Heroku, Railway, Render и подобных бот поднимается как worker, порт слушать не нужно.- Docker-образ пересобран: сборка отдельным слоем (в финальном образе нет компилятора), процесс идёт не от root, а
docker compose up -dпо умолчанию поднимает только бота с SQLite. Нужен PostgreSQL рядом:docker compose --profile pg up -d. Логи ограничены, чтобы не съесть диск на маленьком сервере.- В образе появился
HEALTHCHECK: бот отмечает, что его внутренние циклы живы, и если процесс формально работает, а внутри всё встало, Docker перезапустит контейнер сам. Порт для этого не нужен, так что работает и там, где наружу ничего не открыто.- Новая проверка окружения:
python scripts/doctor.py. Смотрит версию Python, библиотеки, настройки, драйвер и доступность базы, права на запись, связь с Telegram и FunPay, часовой пояс и свободное место. Одна команда вместо «а почему не запускается».- Консоль больше не роняет запуск: на Windows с cp1251 и в контейнерах с
LANG=Cэмодзи в заставке раньше могли убить процесс до первой строчки логов.
Ключ FunPay меняется из Telegram, без перезапуска
Раньше истёкшийgolden_keyозначал «зайди на сервер, открой.env, перезапусти бота». Теперь есть экран «Аккаунт FunPay» (/account): видно ник, баланс, когда проверяли и почему связь не работает, а новый ключ вставляется прямо в чат. Бот проверит его на FunPay, запишет в.env, подменит в живом клиенте и снимет автоматику с паузы. Сообщение с ключом удаляется сразу, в логах ключ замаскирован.
И никакого флуда: тревога уходит один раз, дальше напоминания по лестнице 15 минут → 1 час → 6 часов → раз в сутки, всегда с кнопкой починки. Пока ключ мёртв, бот не долбит FunPay каждые 6 секунд, а ждёт с растущей паузой. Одинаковые тревоги вообще схлопываются (NOTIFY_DEDUPE_WINDOW), а счётчик проглоченных повторов дописывается к следующему сообщению.
API и вебхуки наконец работают
Стыдная история: раздел был написан ещё в 6.0 и описан в этой теме, но кнопка в меню никуда не вела, а сам сервис не запускался. Нашёл, когда чистил мёртвый код, и вместо удаления довёл до конца. Теперь у него свой экран: включение, порт, токен (можно показать и перевыпустить), адреса вебхуков и галочки, на какие события стучаться. Вебхуки уходят на новый заказ, выдачу и возврат, тело{event, ts, data}. Ручки/health,/stats,/orders,/lotsиPOST /messageтребуют токен в заголовке.
Слушает только127.0.0.1и по умолчанию выключено: токен это право писать вашим покупателям от вашего имени, наружу его выставлять нельзя. Нужен доступ с другой машины, пробросьте порт SSH-туннелем.
Стало быстрее
- Советник больше не пересчитывал весь свой набор проверок на каждый показ главного меню. Теперь снимок живёт 30 секунд, а кнопка «обновить» его обходит, чтобы после починки было видно результат сразу.
- Отчёты за 7 и 14 дней делали по запросу на каждый день. Теперь один запрос на весь период.
- Сводка склада читала таблицу товаров четыре раза за один экран. Теперь один раз.
- Появились индексы по статусу и дате заказа, свежести диалога и товару лота. Создаются и на уже работающей базе, ничего вручную делать не надо.
- Список своих лотов на FunPay не перекачивается по нескольку раз за цикл: подсистемы, которым он нужен одновременно, берут один разбор страницы. После любой правки лота кэш сбрасывается сам.
- Выдача больше не читает все лоты, чтобы найти привязанные к товару.
Что убрал
Промокоды. Раздел был, но на FunPay скидку проще дать ценой лота или авто-торгом, а лишний экран в меню только мешал.
Плюс мёртвый код: неиспользуемые функции, импорты и строки локализации. Пока чистил, нашёл две настоящие поломки. Раздел «Автоперевод» был написан, но не подключён к роутеру, то есть кнопка не открывалась вообще. А сообщение «вход по паролю отключён» существовало, но никогда не отправлялось: человеку прилетало общее «нет доступа», и он присылал пароль снова и снова. Теперь и то и другое работает, а на живость кнопок меню есть тест, чтобы такое не повторилось.
Самый большой апдейт. Две части: совместимость с плагинами FunPayCardinal и восемь новых инструментов, которых нет ни у Cardinal, ни у платных ботов.
Плагины Cardinal запускаются без правок
Главное, чего мне не хватало против Cardinal: его экосистема плагинов, она старше и больше. Теперь это не аргумент: кидаете.pyфайл плагина Cardinal в папкуplugins/cardinal/, и он работает. Не «портируется», не «переписывается», а работает как есть, со своими Telegram-командами, инлайн-кнопками и страницей настроек. В разделе «Плагины» они видны с пометкой
, включаются/выключаются и удаляются без перезапуска.
Поддержаны все 18 хуков (BIND_TO_PRE_INIT,BIND_TO_NEW_MESSAGE,BIND_TO_NEW_ORDER,BIND_TO_POST_DELIVERY,BIND_TO_POST_LOTS_RAISEи остальные), объектcardinal(cardinal.account,cardinal.telegram.bot,cardinal.add_telegram_commands) и импортыFunPayAPI/tg_bot.
Под капотом, если интересно: слойcompat/подменяет неймспейсы Cardinal реализациями поверх моего асинхронного клиента. Плагины Cardinal синхронные, поэтому их код исполняется в рабочих потоках, а вызовы FunPay маршалятся обратно в event-loop. Telegram-поллинг остаётся за моей панелью (aiogram), а каждый апдейт зеркалится вtelebot-инстанс плагинов, так что конфликтаgetUpdatesна одном токене не возникает. Всё это покрыто тестами: загрузка плагина, регистрация хуков, маппинг событий, команды и кнопки.
Новый раздел «Инструменты»: восемь подсистем
Все восемь выключены по умолчанию и не мешают, пока не включите. Плюс попутно поймал и починил баг: планировщик отложенных действий регистрировался дважды и крутился в двух копиях.
Пул прокси: у Cardinal одна прокси и почасовая проверка. Здесь пул: бот сам пингует каждую, показывает задержку в мс и статус (
/
/
), а если активная умерла, молча переключается на самую быструю живую и пишет вам об этом. Не нужно ловить руками момент, когда прокси отвалилась и аккаунт встал.
- 🛡 Риск-контроль заказов: скоринг покупателя 0-100 перед выдачей (первая покупка, доля возвратов, скачок суммы против его же среднего чека, свежий аккаунт, чёрный список, отсутствие переписки). При превышении порога бот либо просто предупреждает, либо придерживает выдачу до вашего подтверждения: кнопки
Выдать /
Отклонить /
В ЧС прямо в уведомлении. Веса подобраны так, что один слабый сигнал («просто новичок») порог не пробивает, а связка сигналов пробивает. Выключено по умолчанию.
Маршруты уведомлений: раньше все уведомления летели всем админам одной кучей. Теперь каждой категории (заказы, сообщения, выдача, ошибки…) можно задать свой чат или топик: заказы в один канал, ошибки в другой, болтовня покупателей в третий. Плюс тихие часы с окном через полночь (23:00→08:00) и белым списком: ночью молчит всё, кроме критичных ошибок.
Очередь выдачи с автоповтором: та самая дыра, из-за которой покупатель платит и не получает ничего. Cardinal при сбое отправки возвращает товар в файл и забывает про заказ. Здесь неудачная выдача становится заданием в базе: переживает рестарт бота, повторяется с растущей паузой (минута → 5 → 15 → час → …), а если попытки кончились, уезжает в «мёртвый ящик», который видно в панели и можно повторить одной кнопкой. Ни один оплаченный заказ не теряется молча.
Динамика цен по времени: цена не обязана быть одинаковой круглые сутки. Задаёте правила: «в пятницу-субботу с 18:00 до 23:00 +15%», «ночью -10%». Окна умеют переходить через полночь, есть жёсткие пол и потолок, привязка к категории. Важная деталь, на которой такие штуки обычно ломаются: базовая цена запоминается отдельно, поэтому наценка не накручивается сама на себя каждый проход (+10% не превращается в +21%, +33%…).
Автоперевод сообщений: определяет язык покупателя (по алфавиту + стоп-словам, различает ru/uk/en/es/de/fr/zh/tr) и переводит его сообщения для вас, а при желании и ваши ответы обратно. Можно спокойно торговать с иностранцами, не открывая переводчик в соседней вкладке. Выключено по умолчанию, в выключенном состоянии не делает ни одного сетевого запроса.
Радар конкурентов с историей: автоцена и раньше смотрела на конкурентов, но только «здесь и сейчас». Теперь бот копит историю по каждой отслеживаемой категории: самая низкая цена, медиана, ваша цена, ваша позиция в выдаче и тренд («▲ +4.2% за 7 дн.»). Плюс алерт, когда вас демпингуют больше заданного процента, с кулдауном, чтобы не спамить каждый цикл.
Локальный API и вебхуки: бот умеет отдавать своё состояние наружу:
/health,/stats,/orders,/lotsиPOST /message(отправить сообщение покупателю). Плюс исходящие вебхуки на ваши URL при событиях. Можно прикрутить свой сайт, CRM или Zapier. Слушает только127.0.0.1и требует токен, токен в панели показывается замаскированным. Выключено по умолчанию.Три вещи, которые превращают бота из «автопродавца» в инструмент, который реально помогает зарабатывать больше, а не просто отгружать заказы.
Себестоимость и маржа: у каждого товара теперь можно указать закупочную цену за единицу, и бот сразу показывает прибыль с продажи и маржу в процентах прямо в карточке товара, с цветным индикатором (
хорошо /
тонко /
в минусе). Раньше «финансы» знали только общие расходы. Теперь видно рентабельность по каждой позиции. Продаёшь ниже закупки и не замечал? Теперь заметишь.
Сегменты покупателей: бот сам раскладывает всю твою базу по полкам:
VIP (много заказов или большая сумма),
постоянные,
новички и
уснувшие (кто покупал, но пропал на пару месяцев). Видно сразу, где костяк, который тебя кормит, и кого стоит вернуть рассылкой, пока не ушёл к конкуренту. Пороги настраиваются под твой чек.
Отложенные действия: планируешь действие на будущее, и бот выполнит его сам, когда придёт время: включить/выключить лот, сменить цену, разослать анонс. Пишешь одной строкой:
цена 12345 990 | 6h(через 6 часов поставить лоту цену 990) иливыкл 12345 | 1d(завтра снять лот). Удобно под ночные акции, распродажи по расписанию и «подниму цену после ажиотажа». Одноразовые, с историей выполнения.Дорос до полноценного «рабочего стола» продавца. Четыре новых раздела в меню: то, ради чего раньше приходилось держать блокнот и калькулятор рядом.
Плюс прокачал внешний вид: денежные суммы с разделителями (1 234 567 ₽), стрелки тренда, аккуратные моноширинные таблицы и карточки на новых экранах.
- 🎟 Промокоды были в этой версии, но в 6.1 я их убрал: на FunPay скидку всё равно проще дать ценой лота или авто-торгом, а лишний раздел только путал. Если пользовались, извините, зато меню стало короче.
Финансы и прибыль: выручку бот и так знает из заказов, но прибыль это выручка минус расходы. Теперь можно вносить траты (закупка товара, реклама, комиссии) одной строкой, а бот сводит P&L за день/неделю/месяц: сколько пришло, сколько потратил, сколько осталось чистыми, и по каким категориям ушли деньги. Наконец видно реальную маржу, а не оборот.
Задачи и напоминания: свой чек-лист прямо в боте: «докинуть ключи», «ответить на спор». Можно прицепить срок: пишешь
докинуть ключи | 2h, и через 2 часа бот сам пингнёт в Telegram. Важные помечаются, выполненные убираются в историю. Больше ничего не забывается.Рассылка покупателям: одно сообщение всем недавним клиентам (акция, новый товар, «вернулся в онлайн»). Пишешь текст, бот показывает скольким уйдёт, подтверждаешь, и он рассылает с паузами, чтобы FunPay не ругался на флуд. Чёрный список не трогает. Есть переменные
{username} {date}.Две вещи, которых я не видел ни в Cardinal, ни в платных ботах. Обе выросли из моих же граблей.
Умный авто-торг: половина покупателей пишет «а скинуть можешь?», и раньше, пока я спал, они просто уходили к другому. Теперь бот сам ловит торг («скинь», «дешевле», «дорого», «уступи»…) и делает встречное предложение по твоим правилам: задаёшь потолок скидки (скажем, 10%), а первый ответ бот даёт вполовину меньше, чтобы было куда двигаться, если напишут второй раз. Второй раз даёт потолок. Свой кулдаун, чтобы не спамить, и работает даже в режиме «не в сети»: ночью сделка не срывается. Оффер ни к чему не обязывает, это просто «готов уступить N%», а решаешь всё равно ты.
- 🛡 Страж выдачи: та самая защита от позора, когда автовыдача отправляет покупателю пустое сообщение или битый ключ, а следом прилетает возврат и минус в рейтинг. Перед каждой выдачей бот проверяет товар: пустая строка, подозрительно короткий обрывок или несоответствие твоему формату (можно задать шаблон, например
логин:пароль). Если хоть одна единица похожа на брак, бот не отдаёт её покупателю, возвращает весь товар на склад (ничего не теряется) и шлёт тебе тревогу: проверь и выдай вручную. Из коробки ловит самое страшное: пустую выдачу. Проверку длины и формата включаешь сам, если нужно.Взялся за то, обо что все спотыкаются в первый день: настройку. Раньше надо было руками лезть в.env, знать свой числовой Telegram ID и не ошибиться ни в одной строчке. Теперь бот сам всё спросит.
Мастер настройки при первом запуске: запускаешь бота, а он по шагам: язык, токен бота, твой ID, golden_key, пароль, прокси. Каждое поле проверяет на месте, подсказывает где что взять. В конце сам пишет правильный
.envи стартует. Не знаешь свой ID, можно пропустить, потом войдёшь по паролю. Пустой конфиг больше не роняет бота с непонятной ошибкой.- 🗣 Три языка интерфейса: русский, английский, украинский. Выбираешь в мастере на первом шаге или потом в «Настройки → Язык», переключается на лету. Меню, настройки, экран входа. Всё переводится.
Вход по паролю: как в Cardinal. Даже если не знаешь свой Telegram ID, просто отправь боту пароль и он откроет доступ. Первый вошедший становится владельцем, а остальные админами, тебе прилетает уведомление о каждом новом входе. От перебора защита: пять попыток и хватит, а сам пароль хранится хешем, не открытым текстом.
Блокировка входа: владелец может вообще запретить вход по паролю, чтобы пускало только по списку ID. Тумблер в настройках.
Приветствие только новым: здороваться можно только с теми, кто пишет впервые, а не с каждым, кто просто открыл старый диалог.
Вид уведомлений: можно не слать себе уведомления о своих же сообщениях, а картинки в чате теперь приходят с именем файла, а не пустым сообщением.
Запуск в один клик на Windows:
Start.batсам поднимет окружение, поставит зависимости и запустит. Двойной клик, и поехали.- Обновил вид главного экрана и настроек: живая сводка, прогресс-бар к дневной цели, аккуратные бейджи статуса.
Большой апдейт. Раньше, чтобы посмотреть переписку или что-то узнать про клиента, приходилось лезть на FunPay в браузер. Теперь всё живёт в панели.
Чаты: все входящие от покупателей одним списком: кто написал, когда, превью последнего сообщения, непрочитанные помечены точкой. Открываешь диалог, подтягивается история переписки, отвечаешь в один тап, не заходя на FunPay. Открыл чат, он сам пометился прочитанным, чтобы не путаться.
Карточка покупателя (CRM): на каждого клиента своя карточка. Внутри заметки (например «оптовик, платит вовремя»), теги (vip, опт…), вся история заказов и сколько всего человек заказал и на какую сумму принёс. Оттуда же можно в чёрный/белый список в один тап и написать напрямую. Открывается из заказа, из чата или просто поиском по нику.
Быстрые шаблоны: заготовки ответов на частые вопросы. В отличие от автоответов они не срабатывают сами: ты выбираешь нужный и он вставляется в чат. Поддерживают переменные
{username} {date} {time}, бот ещё и считает, каким шаблоном ты пользуешься чаще.Проблемные заказы: отдельная очередь. Это заказы, которые оплачены, но не выданы, и те, где выдача сорвалась. Счётчик висит прямо в шапке раздела «Заказы», чтобы косяк не потерялся среди остальных.
Умная цена по лоту: жмёшь кнопку на лоте, бот смотрит конкурентов и предлагает цену на 1 ₽ ниже самого дешёвого, с учётом твоих границ мин-макс. Согласен, применяешь в один тап, не считая руками.
- Импорт из FunPayCardinal: в «Настройки → Импорт из Cardinal» пришлите файлы из папки
configs/прямо в чат. Переносятся автоответы, шаблоны выдачи, флаги автофункций, приветствие и его кулдаун.golden_keyи токен бот сначала показывает и просит подтверждение, молча в.envне пишет.- Подпись сообщений (вотермарка): свой текст добавляется в конец каждого исходящего сообщения покупателю. Пусто значит выключено, повторно не дублируется.
- Кулдаун приветствия: приветствие можно слать повторно спустя N часов, а не «один раз навсегда».
- Авто-разбивка длинных сообщений: большие тексты выдачи режутся на части, чтобы FunPay их не обрезал.
- Больше переменных в выдаче: к
{username} {order_id} {product_name}добавились{order_title} {amount} {price} {chat_id}.- Команда
!команды: покупатель пишет!командыи бот сам отдаёт список доступных команд-автоответов.
- Весь интерфейс к единому виду: заголовки, разделители, строки и значки статуса
/
️ одинаковые на всех экранах.
- Главный экран, статистика и статус системы читаются ровно, без «слипшихся» строк.
- Убрал лишние дублирующие команды-панели. Статистика и отчёты теперь в одном меню, без зоопарка отдельных команд.
Добавлено:
Исправлено (надёжность и деньги):
- Запуск на Android (Termux) прямо с телефона без ПК: скрипт-установщик
scripts/install_termux.sh(ставит зависимости, берёт wake-lock).- Запуск на Linux/VPS одним скриптом
scripts/run.sh+ готовый сервис systemd для работы 24/7 с авто-рестартом.- Прогноз склада: оценка скорости продаж и ETA до нуля по каждому товару, заблаговременный алерт «скоро закончится» (умнее статичного порога).
- Часы продаж: отчёт по часам и дням недели, когда покупают чаще всего.
- Обновлённый дизайн панели: единый стиль кнопок (сетка 2-в-ряд, тумблеры со статус-индикатором), читаемый дашборд.
- Редактирование цены/остатка лота больше не воскрешает выключенный лот: форма правки перестала тащить снятые галочки (active и пр.).
- Ручная повторная выдача заказа больше не списывает товар повторно, а переотправляет уже выданное.
- Заказ с пустым/нулевым количеством больше не уходит как пустая выдача и не роняет доставку.
- Просмотр счётчика непрочитанных больше не «съедает» сообщения покупателей (был побочный эффект, из-за которого ответ мог не уйти).
- Кулдаун автоответчика и режим «не в сети» разведены: приветствие «оффлайн» больше не блокирует обычные автоответы; кулдаун ставится только после успешной отправки.
- Низкий баланс теперь шлёт один алерт на просадку, а не спам каждые 10 минут.
- Рандомизация автоподнятия стала настоящей (раньше джиттер у всех лотов почти совпадал).
- Шаблоны выдачи: значение с фигурными скобками внутри больше не ломает подстановку.
- Бэкапы: защита от затирания всех архивов при
BACKUP_KEEP=0и от Zip-Slip при восстановлении.Добавлено:
Улучшено:
- Автосинхронизация лотов: свои лоты подтягиваются с FunPay в базу по интервалу, без ручной кнопки. Пропавшие (проданные/снятые) лоты убираются автоматически, с защитой от стирания при сбое загрузки.
- Автоответ на отзыв: бот сам отвечает благодарностью на оставленный покупателем отзыв.
- Графики в Telegram: спарклайны, бар-чарты и гистограммы в дашборде и ежедневной сводке (без внешних сервисов).
- Роли доступа: owner / admin / moderator / viewer вместо плоского списка админов; токен-бакет и sliding-window rate-limit, скрытие секретов в логах.
- Анти-спам автоответчика: кулдаун на ответ одному покупателю и авто-пометка чата прочитанным (стоп повторному поллингу).
- Вотчер склада: мгновенное уведомление, как только товар заканчивается или на исходе, без спама по одному и тому же лоту.
- Цель дня: задайте план по выручке/заказам и получайте пуш «цель достигнута», счётчик сбрасывается в полночь.
- Heartbeat и watchdog: бот сам сообщает, если какой-то сервис упал (и когда восстановился); опционально шлёт периодический пульс «я в строю» с аптаймом и сводкой.
- Плюс 6 готовых плагинов: программа лояльности (скидка постоянным), VIP-радар крупных заказов, рассылка акций покупателям, радар цен конкурентов с алертом о демпинге, контроль скорости выдачи и монитор рейтинга/отзывов.
- Автоцена: режимы среднее / медиана / дешевле всех, отсев выбросов и мусорных лотов, анти-джиттер цены.
- Устойчивость сервисов: один сбойный лот больше не роняет цикл, авто-рестарт фоновых задач.
v2.0: автовыдача реально доходит до покупателя, полный текст сообщений, починка утечек памяти и разбора цены. Каталог 1₽, управление заказами из Telegram, статус системы, regex-автоответы с приоритетом, привязка заказа к лоту, прокси на аккаунт, плагин-хуки on_order_paid/on_refund.
v1.2: автоцена по рынку, отчёты, ежедневная сводка, монитор баланса, режим «не в сети», чёрный список.
v1.1: плагины, мультиаккаунт, автобэкапы.
v1.0: первый релиз. Автовыдача, автоподнятие, автоответчик, панель в Telegram.
Вопросы и баги пишите в комментарии
Скачать *Mega*
Cкачать *Google Drive*
USDT · TON
UQD2KyFwUwxzfazjOYoVFSbndkopJTTuzznSlH-xAeyreXw5
USDT · TRC-20
TMVVxABcHWjZV8SCJ7Qcn1x6fCTNUjkLaf
️ USDT · ERC-20
0x8fA6191a880643B498eFe172E1CF3B7432592884
USDT · SOL
EdRacBcvcZdqn7qXiJN2f1xTCNY4jNeLWmWSbh1C9X5p
Monobank:
4874 1000 3214 5263
Заранее спасибо:)