Многофункциональный бот-автоматизация для продавцов FunPay.
Репозиторий на GitHub можно переименовать вручную в
funpay-bot(Settings → General → Repository name) — у агента нет прав на rename.
| Модуль | Описание |
|---|---|
| Автоподнятие лотов | Циклический POST /lots/raise по категориям из конфига |
| Вечный онлайн | Пинг /runner/, статус «в сети» |
| Автоответы | Ответы по ключевым словам в чатах |
| Автовыдача | Выдача товаров из файлов склада по маске названия заказа |
| Приветствие | Сообщение покупателю после нового заказа |
| Напоминание об отзыве | Отложенное сообщение через N минут |
| Управление лотами | Список, цена, вкл/выкл |
| Конкуренты | Цены в подкатегории + опциональный автоандеркат |
| Баланс / заказы / чаты | CLI-утилиты для быстрых проверок |
| Интерактивное меню | funpaybot menu |
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
pip install -e .
funpaybot init- Откройте FunPay в браузере → DevTools → Application → Cookies → скопируйте
golden_key. - Вставьте ключ в
.env:
FUNPAY_GOLDEN_KEY=ваш_ключ-
В
config.yamlукажите категории для поднятия (game_id/node_id). Их можно взять из URL страницы торговли, например
https://funpay.com/lots/2450/trade→node_id=2450.
game_idсмотрите в HTML/Network при нажатии «Поднять» или вdata-app-data. -
Проверка и запуск:
funpaybot whoami
funpaybot runfunpaybot whoami # профиль + CSRF
funpaybot balance # балансы
funpaybot lots # ваши лоты
funpaybot raise --all # поднять все категории из конфига
funpaybot raise -g 41 -n 2450 # поднять одну категорию
funpaybot orders # последние продажи
funpaybot chats # чаты
funpaybot say CHAT_ID "текст" # отправить сообщение
funpaybot set-price 12345 99.5
funpaybot lot-toggle 12345 --inactive
funpaybot competitors 2450 # цены конкурентов
funpaybot stock # остатки склада
funpaybot stock --add-to keys.txt --items "KEY1|KEY2"
funpaybot status
funpaybot menu # интерактивное меню
funpaybot online # только вечный онлайн
funpaybot gui # веб-панель управления
funpaybot run # полный бот (+ вечный онлайн принудительно)| Файл | Платформа |
|---|---|
dist/artifacts/FunPayBot-windows-x64.exe |
Windows x64 (PE32+) |
dist/artifacts/FunPayBot-windows-portable.zip |
Windows x64 portable (Python amd64) |
dist/artifacts/FunPayBot-linux-x86_64 |
Linux x86_64 |
dist/artifacts/FunPayBot-android-termux.zip |
Android через Termux |
APK arm64-v8a |
bash scripts/build_android_apk.sh или GitHub Actions |
bash scripts/build_native.sh # Linux x64
bash scripts/build_windows_exe.sh # Windows x64 .exe (через Wine)
bash scripts/build_windows_portable.sh # portable zip x6432-bit сборки не поддерживаются.
Файлы в data/products/ — по одной позиции на строку:
# accounts.txt
mail@example.com:Password1
mail2@example.com:Password2
В config.yaml:
delivery:
enabled: true
stock_dir: "data/products"
mappings:
- match: "аккаунт"
file: "accounts.txt"
message: |
Ваш аккаунт:
{product}Если в названии заказа есть аккаунт, бот заберёт первую строку из файла и отправит покупателю.
Смотрите config.example.yaml. Основные блоки:
raise_lots— автоподнятиеonline— вечный онлайнautoresponder— правила автоответовgreeting/review_reminder— тексты после заказаdelivery— складpricing.undercut— автоснижение цены относительно конкурентов (выключено по умолчанию)
Плейсхолдеры в шаблонах: {buyer}, {order_id}, {price}, {description}, {product}.
- Не коммитьте
.env,config.yamlс ключом и файлы склада. golden_key= полный доступ к аккаунту. Храните как пароль.- Соблюдайте правила FunPay; чрезмерный флуд запросами может привести к ограничениям.
- Рекомендуется
user_agent, совпадающий с браузером, в котором получен ключ.
funpaybot/
client.py # HTTP-клиент FunPay
bot.py # оркестратор модулей
cli.py # Typer CLI
config.py # YAML + env
models.py
modules/
raiser.py # автоподнятие
online.py # онлайн
autoresponder.py
delivery.py
greeting.py
pricing.py
events.py # поллинг заказов/чатов
utils/
data/products/ # склад
config.example.yaml
pip install -e ".[dev]"
pytest -qMIT