Библиотека для удобного управления Funpay
Project description
FunpayACE 0.1.0
Библиотека для продавцов Funpay: «вечный онлайн», автоподнятие лотов и получение баланса — теперь надёжнее и дружелюбнее к продакшену.
🚀 Установка
pip install -U funpayace
Python 3.9+
⚡️ Что нового в 0.1.0
- Устойчивее авторизация:
CookieJar+ дублирование заголовкаCookie, «разогрев» сессии и авто-поиск CSRF. - Экспоненциальные ретраи с джиттером для всех запросов.
- Единый
ClientSessionс корректным лайфсайклом (async with/aclose()). - Живучий парсер баланса (HTML/текст/встроенный JSON).
- Удобные раннеры: запуск как фоновые таски или в отдельной нити.
- Конфиг через
FunpayConfig(таймауты, частоты, ssl, debug). - Акуратные логи, без вмешательства в конфиг приложения.
🔧 Быстрый старт
Асинхронный вариант (рекомендуется)
import asyncio
import logging
from funpayace import FunpayAce, FunpayConfig
logging.basicConfig(level=logging.INFO)
GOLDEN_KEY = "ваш_golden_key"
GAME_ID = 224
NODE_ID = 2424
async def main():
client = FunpayAce(golden_key=GOLDEN_KEY, config=FunpayConfig())
async with client:
# Запускаем фоновые процессы
client.start_forever_online_task()
client.start_lot_auto_boost_task(GAME_ID, NODE_ID)
# Периодический опрос баланса
try:
while True:
try:
balance = await client.get_balance()
print("Баланс:", balance)
except Exception as e:
logging.exception("Не удалось получить баланс: %s", e)
await asyncio.sleep(30)
finally:
await client.cancel_background_tasks()
if __name__ == "__main__":
asyncio.run(main())
Синхронный запуск в отдельной нити
import time
from funpayace import FunpayAce
client = FunpayAce(golden_key="ваш_golden_key")
# «Вечный онлайн» и автоподнятие — в фоновых нитях
client.run_forever_online_in_thread()
client.run_lot_auto_boost_in_thread(game_id=224, node_id=2424)
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
pass
❗️
golden_key— cookie вашей авторизованной сессии Funpay. Он может протухать или быть привязан к устройству. Если видитеHTTP 403: Необходимо авторизоваться, обновите ключ.
📘 API
Класс
FunpayAce(golden_key: str, config: FunpayConfig = FunpayConfig())
Методы (async)
await forever_online()— поддерживает онлайн (POST/runner/) в бесконечном цикле.await lot_auto_boost(game_id: int, node_id: int)— автоподнятие лотов (POST/lots/raise) в цикле.await get_balance() -> dict[str, float]— возвращает балансы, например:{"RUB": 123.45, "USD": 12.34, "EUR": 5.67}
Запуск в фоне
start_forever_online_task()/start_lot_auto_boost_task(game_id, node_id)run_forever_online_in_thread()/run_lot_auto_boost_in_thread(game_id, node_id)
Завершение
await aclose()— закрыть HTTP-сессию.await cancel_background_tasks()— отменить все фоновые таски клиента.
🛠 Конфигурация
from funpayace import FunpayConfig
cfg = FunpayConfig(
base_url="https://funpay.com",
user_agent="Mozilla/5.0 ...", # браузерный UA
request_timeout=20.0,
connector_limit=10,
max_retries=4,
backoff_base=0.75,
backoff_max=8.0,
ping_interval_min=45.0,
ping_interval_max=100.0,
raise_interval_min=60.0,
raise_interval_max=300.0,
ssl=True,
send_cookie_header_always=True,
debug_auth=False
)
🧩 Обработка ошибок
RequestError— сетевые/HTTP ошибки после ретраев (включая403).BalanceParseError— не удалось распарсить баланс.
🔄 Миграция с 0.0.x → 0.1.0
- Теперь всё асинхронно → используйте один event loop и
start_*_task(). - Авторизация стала строже → warm-up + CSRF делаются автоматически.
- Парсер баланса стал гибче.
📦 Версии
0.1.0 — 2025-08-17
- Авторизация: warm-up, CSRF, CookieJar + заголовок
Cookie. - Ретраи с экспоненциальным бэк-оффом.
- Новый живучий парсер
get_balance. - Удобные фоновые раннеры (таски/нити).
- Конфиг
FunpayConfig+ режимdebug_auth.
0.0.5 — 2025-06-02
- Улучшено логирование; добавлен
get_balance().
📜 Лицензия
MIT — см. файл LICENSE.
☕ Поддержка
Если библиотека полезна — звезда на GitHub очень помогает ⭐
Телеграм-канал: https://t.me/funpayace
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file funpayace-0.1.0.tar.gz.
File metadata
- Download URL: funpayace-0.1.0.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd6a57af41049fbf2bf95cc6f0fa8750c570b58bd54f24b48f411083ad106042
|
|
| MD5 |
abd742984264d8aafbb44e6de07d6a41
|
|
| BLAKE2b-256 |
b7cce5c321dac80cf31740951a25158660905474f1693945f5aed76c403fdd77
|
File details
Details for the file funpayace-0.1.0-py3-none-any.whl.
File metadata
- Download URL: funpayace-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac470b693665c69b0bb9177b7a581a8b43bb4ee94657a5b0acafca45dfc8a4cb
|
|
| MD5 |
506f9d9aed6b869e6e356e371bc8c31b
|
|
| BLAKE2b-256 |
23d0b058c3e661bbc3b241d2c19a878e41969b4825c5bb9629efd61f9ab47a03
|