Управление FunPay Аккаунтом#

class FunPayAPI.account.Account(golden_key: str, user_agent: str | None = None, requests_timeout: int | float = 10, proxy: dict | None = None)#

Класс для управления аккаунтом FunPay.

Параметры:
  • golden_key (str) – токен (golden_key) аккаунта.

  • user_agent (str) – user-agent браузера, с которого был произведен вход в аккаунт.

  • requests_timeout (int or float) – тайм-аут ожидания ответа на запросы.

  • proxy (dict {str: str or None) – прокси для запросов.

golden_key: str#

Токен (golden_key) аккаунта.

user_agent: str | None#

User-agent браузера, с которого был произведен вход в аккаунт.

requests_timeout: int | float#

Тайм-аут ожидания ответа на запросы.

html: str | None#

HTML основной страницы FunPay.

app_data: dict | None#

Appdata.

id: int | None#

ID аккаунта.

username: str | None#

Никнейм аккаунта.

active_sales: int | None#

Активные продажи.

active_purchases: int | None#

Активные покупки.

csrf_token: str | None#

CSRF токен.

phpsessid: str | None#

PHPSESSID сессии.

last_update: int | None#

Последнее время обновления аккаунта.

runner: Runner | None#

Объект Runner’а.

method(request_method: Literal['post', 'get'], api_method: str, headers: dict, payload: Any, exclude_phpsessid: bool = False, raise_not_200: bool = False) Response#

Отправляет запрос к FunPay. Добавляет в заголовки запроса user_agent и куки.

Параметры:
  • request_method (str post or get) – метод запроса («get» / «post»).

  • api_method (str) – метод API / полная ссылка.

  • headers (dict) – заголовки запроса.

  • payload (dict) – полезная нагрузка.

  • exclude_phpsessid (bool) – исключить ли PHPSESSID из добавляемых куки?

  • raise_not_200 (bool) – возбуждать ли исключение, если статус код ответа != 200?

Результат:

объект ответа.

Тип результата:

requests.Response

get(update_phpsessid: bool = False) Account#

Получает / обновляет данные об аккаунте. Необходимо вызывать каждые 40-60 минут, дабы обновить Account.phpsessid.

Параметры:

update_phpsessid (bool, опционально) – обновить Account.phpsessid или использовать старый.

Результат:

объект аккаунта с обновленными данными.

Тип результата:

FunPayAPI.account.Account

get_subcategory_public_lots(subcategory_type: SubCategoryTypes, subcategory_id: int) list[FunPayAPI.types.LotShortcut]#

Получает список всех опубликованных лотов переданной подкатегории.

Параметры:
  • subcategory_type (FunPayAPI.enums.SubCategoryTypes) – тип подкатегории.

  • subcategory_id (int) – ID подкатегории.

Результат:

список всех опубликованных лотов переданной подкатегории.

Тип результата:

list of FunPayAPI.types.LotShortcut

get_balance(lot_id: int = 18853876) Balance#

Получает информацию о балансе пользователя.

Параметры:

lot_id (int, опционально) – ID лота, на котором проверять баланс.

Результат:

информацию о балансе пользователя.

Тип результата:

FunPayAPI.types.Balance

get_chat_history(chat_id: int | str, last_message_id: int = 99999999999999999999999, interlocutor_username: str | None = None, from_id: int = 0) list[FunPayAPI.types.Message]#

Получает историю указанного чата (до 100 последних сообщений).

Параметры:
  • chat_id (int or str) – ID чата (или его текстовое обозначение).

  • last_message_id (int) – ID сообщения, с которого начинать историю (фильтр FunPay).

  • interlocutor_username (str or None, опционально.) – никнейм собеседника. Не нужно указывать для получения истории публичного чата. Так же не обязательно, но желательно указывать для получения истории личного чата.

  • from_id (int, опционально.) – все сообщения с ID < переданного не попадут в возвращаемый список сообщений.

Результат:

история указанного чата.

Тип результата:

list of FunPayAPI.types.Message

get_chats_histories(chats_data: dict[int | str, str | None]) dict[int, list[FunPayAPI.types.Message]]#

Получает историю сообщений сразу нескольких чатов (до 50 сообщений на личный чат, до 25 сообщений на публичный чат).

Параметры:

chats_data (dict {int or str: str or None}) –

ID чатов и никнеймы собеседников (None, если никнейм неизвестен)

Например: {48392847: «SLLMK», 58392098: «Amongus», 38948728: None}

Результат:

словарь с историями чатов в формате {ID чата: [список сообщений]}

Тип результата:

dict {int: list of FunPayAPI.types.Message}

upload_image(image: str | IO[bytes]) int#

Выгружает изображение на сервер FunPay для дальнейшей отправки в качестве сообщения. Для отправки изображения в чат рекомендуется использовать метод FunPayAPI.account.Account.send_image().

Параметры:

image (str or bytes) – путь до изображения или представление изображения в виде байтов.

Результат:

ID изображения на серверах FunPay.

Тип результата:

int

send_message(chat_id: int | str, text: str | None = None, chat_name: str | None = None, image_id: int | None = None, add_to_ignore_list: bool = True, update_last_saved_message: bool = False) Message#

Отправляет сообщение в чат.

Параметры:
  • chat_id (int or str) – ID чата.

  • text (str or None, опционально) – текст сообщения.

  • chat_name (str or None, опционально) – название чата (для возвращаемого объекта сообщения) (не нужно для отправки сообщения в публичный чат).

  • image_id (int or None, опционально) – ID изображения. Доступно только для личных чатов.

  • add_to_ignore_list (bool, опционально) – добавлять ли ID отправленного сообщения в игнорируемый список Runner’а?

  • update_last_saved_message (bool, опционально.) – обновлять ли последнее сохраненное сообщение на отправленное в Runner’е?

Результат:

экземпляр отправленного сообщения.

Тип результата:

FunPayAPI.types.Message

send_image(chat_id: int, image: int | str | IO[bytes], chat_name: str | None = None, add_to_ignore_list: bool = True, update_last_saved_message: bool = False) Message#

Отправляет изображение в чат. Доступно только для личных чатов.

Параметры:
  • chat_id (int) – ID чата.

  • image (int or str or bytes) – ID изображения / путь до изображения / изображение в виде байтов. Если передан путь до изображения или представление изображения в виде байтов, сначала оно будет выгружено с помощью метода FunPayAPI.account.Account.upload_image().

  • chat_name (str or None, опционально) – Название чата (никнейм собеседника). Нужен для возвращаемого объекта.

  • add_to_ignore_list (bool, опционально) – добавлять ли ID отправленного сообщения в игнорируемый список Runner’а?

  • update_last_saved_message (bool, опционально) – обновлять ли последнее сохраненное сообщение на отправленное в Runner’е?

Результат:

объект отправленного сообщения.

Тип результата:

FunPayAPI.types.Message

send_review(order_id: str, text: str, rating: Literal[1, 2, 3, 4, 5] = 5) str#

Отправляет / редактирует отзыв / ответ на отзыв.

Параметры:
  • order_id (str) – ID заказа.

  • text (str) – текст отзыва.

  • rating (int, опционально) – рейтинг (от 1 до 5).

Результат:

ответ FunPay (HTML-код блока отзыва).

Тип результата:

str

delete_review(order_id: str) str#

Удаляет отзыв / ответ на отзыв.

Параметры:

order_id (str) – ID заказа.

Результат:

ответ FunPay (HTML-код блока отзыва).

Тип результата:

str

refund(order_id)#

Оформляет возврат средств за заказ.

Параметры:

order_id (str) – ID заказа.

withdraw(currency: Currency, wallet: Wallet, amount: int | float, address: str) float#

Отправляет запрос на вывод средств.

Параметры:
Результат:

кол-во выведенных средств с учетом комиссии FunPay.

Тип результата:

float

get_raise_modal(category_id: int) dict#

Отправляет запрос на получение modal-формы для поднятия лотов категории (игры). !ВНИМАНИЕ! Если на аккаунте только 1 подкатегория, относящаяся переданной категории (игре), то FunPay поднимет лоты данной подкатегории без отправления modal-формы с выбором других подкатегорий.

Параметры:

category_id (int) – ID категории (игры).

Результат:

ответ FunPay.

Тип результата:

dict

raise_lots(category_id: int, subcategories: list[int | FunPayAPI.types.SubCategory] | None = None, exclude: list[int] | None = None) bool#

Поднимает все лоты всех подкатегорий переданной категории (игры).

Параметры:
  • category_id (int) – ID категории (игры).

  • subcategories (list of int or FunPayAPI.types.SubCategory) – список подкатегорий, которые необходимо поднять. Если не указаны, поднимутся все подкатегории переданной категории.

  • exclude (list of int, опционально.) – ID подкатегорий, которые не нужно поднимать.

Результат:

True

Тип результата:

bool

get_user(user_id: int) UserProfile#

Парсит страницу пользователя.

Параметры:

user_id (int) – ID пользователя.

Результат:

объект профиля пользователя.

Тип результата:

FunPayAPI.types.UserProfile

get_chat(chat_id: int) Chat#

Получает информацию о личном чате.

Параметры:

chat_id (int) – ID чата.

Результат:

объект чата.

Тип результата:

FunPayAPI.types.Chat

get_order(order_id: str) Order#

Получает полную информацию о заказе.

Параметры:

order_id (str) – ID заказа.

Результат:

объекст заказа.

Тип результата:

FunPayAPI.types.Order

get_sells(start_from: str | None = None, include_paid: bool = True, include_closed: bool = True, include_refunded: bool = True, exclude_ids: list[str] | None = None, id: int | None = None, buyer: str | None = None, state: Literal['closed', 'paid', 'refunded'] | None = None, game: int | None = None, section: str | None = None, server: int | None = None, side: int | None = None, **more_filters) tuple[str | None, list[FunPayAPI.types.OrderShortcut]]#

Получает и парсит список заказов со страницы https://funpay.com/orders/trade

Параметры:
  • start_from (str) – ID заказа, с которого начать список (ID заказа должен быть без „#“!).

  • include_paid (bool, опционально) – включить ли в список заказы, ожидающие выполнения?

  • include_closed (bool, опционально) – включить ли в список закрытые заказы?

  • include_refunded (bool, опционально) – включить ли в список заказы, за которые запрошен возврат средств?

  • exclude_ids (list of str, опционально) – исключить заказы с ID из списка (ID заказа должен быть без „#“!).

  • id (int, опционально) – ID заказа.

  • buyer (str, опционально) – никнейм покупателя.

  • state – статус заказа.

  • game (int, опционально) – ID игры.

  • section (str, опционально) –

    ID категории в формате <тип лота>-<ID категории>.

    Типы лотов:

    • lot - стандартный лот (например: lot-256)

    • chip - игровая валюта (например: chip-4471)

  • server (int, опционально) – ID сервера.

  • side (int, опционально.) – ID стороны (платформы).

  • more_filters – доп. фильтры.

Type:

str paid, closed or refunded, опционально

Результат:

(ID след. заказа (для start_from), список заказов)

Тип результата:

tuple (str or None, list of FunPayAPI.types.OrderShortcut)

add_chats(chats: list[FunPayAPI.types.ChatShortcut])#

Сохраняет чаты.

Параметры:

chats (list of FunPayAPI.types.ChatShortcut) – объекты чатов.

request_chats() list[FunPayAPI.types.ChatShortcut]#

Запрашивает чаты и парсит их.

Результат:

объекты чатов (не больше 50).

Тип результата:

list of FunPayAPI.types.ChatShortcut

get_chats(update: bool = False) dict[int, FunPayAPI.types.ChatShortcut]#

Возвращает словарь с сохраненными чатами ({id: types.ChatShortcut})

Параметры:

update (bool, опционально) – обновлять ли предварительно список чатов с помощью доп. запроса?

Результат:

словарь с сохраненными чатами.

Тип результата:

dict {int: FunPayAPi.types.ChatShortcut}

get_chat_by_name(name: str, make_request: bool = False) ChatShortcut | None#

Возвращает чат по его названию (если он сохранен).

Параметры:
  • name (str) – название чата.

  • make_request (bool, опционально) – обновить ли сохраненные чаты, если чат не был найден?

Результат:

объект чата или None, если чат не был найден.

Тип результата:

FunPayAPI.types.ChatShortcut or None

get_chat_by_id(chat_id: int, make_request: bool = False) ChatShortcut | None#

Возвращает личный чат по его ID (если он сохранен).

Параметры:
  • chat_id (int) – ID чата.

  • make_request (bool, опционально) – обновить ли сохраненные чаты, если чат не был найден?

Результат:

объект чата или None, если чат не был найден.

Тип результата:

FunPayAPI.types.ChatShortcut or None

get_lot_fields(lot_id: int) LotFields#

Получает все поля лота.

Параметры:

lot_id (int) – ID лота.

Результат:

объект с полями лота.

Тип результата:

FunPayAPI.types.LotFields

save_lot(lot_fields: LotFields)#

Сохраняет лот на FunPay.

Параметры:

lot_fields (FunPayAPI.types.LotFields) – объект с полями лота.

get_category(category_id: int) Category | None#

Возвращает объект категории (игры).

Параметры:

category_id (int) – ID категории (игры).

Результат:

объект категории (игры) или None, если категория не была найдена.

Тип результата:

FunPayAPI.types.Category or None

property categories: list[FunPayAPI.types.Category]#

Возвращает все категории (игры) FunPay (парсятся при первом выполнении метода FunPayAPI.account.Account.get()).

Результат:

все категории (игры) FunPay.

Тип результата:

list of FunPayAPI.types.Category

get_sorted_categories() dict[int, FunPayAPI.types.Category]#

Возвращает все категории (игры) FunPay в виде словаря {ID: категория} (парсятся при первом выполнении метода FunPayAPI.account.Account.get()).

Результат:

все категории (игры) FunPay в виде словаря {ID: категория}

Тип результата:

dict {int: FunPayAPI.types.Category}

get_subcategory(subcategory_type: SubCategoryTypes, subcategory_id: int) SubCategory | None#

Возвращает объект подкатегории.

Параметры:
Результат:

объект подкатегории или None, если подкатегория не была найдена.

Тип результата:

FunPayAPI.types.SubCategory or None

property subcategories: list[FunPayAPI.types.SubCategory]#

Возвращает все подкатегории FunPay (парсятся при первом выполнении метода Account.get).

Результат:

все подкатегории FunPay.

Тип результата:

list of FunPayAPI.types.SubCategory

get_sorted_subcategories() dict[FunPayAPI.common.enums.SubCategoryTypes, dict[int, FunPayAPI.types.SubCategory]]#

Возвращает все подкатегории FunPay в виде словаря {тип подкатегории: {ID: подкатегория}} (парсятся при первом выполнении метода Account.get).

Результат:

все подкатегории FunPay в виде словаря {тип подкатегории: {ID: подкатегория}}

Тип результата:

dict {FunPayAPI.common.enums.SubCategoryTypes: dict {int FunPayAPI.types.SubCategory}}

property is_initiated: bool#

Инициализирован ли класс FunPayAPI.account.Account с помощью метода FunPayAPI.account.Account.get()?

Результат:

True, если да, False, если нет.

Тип результата:

bool