Управление FunPay Аккаунтом#
- class FunPayAPI.account.Account(golden_key: str, user_agent: str | None = None, requests_timeout: int | float = 10, proxy: dict | None = None)#
Класс для управления аккаунтом FunPay.
- Параметры:
- 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
или использовать старый.- Результат:
объект аккаунта с обновленными данными.
- Тип результата:
- get_subcategory_public_lots(subcategory_type: SubCategoryTypes, subcategory_id: int) list[FunPayAPI.types.LotShortcut] #
Получает список всех опубликованных лотов переданной подкатегории.
- Параметры:
subcategory_type (
FunPayAPI.enums.SubCategoryTypes
) – тип подкатегории.subcategory_id (
int
) – ID подкатегории.
- Результат:
список всех опубликованных лотов переданной подкатегории.
- Тип результата:
- get_balance(lot_id: int = 18853876) Balance #
Получает информацию о балансе пользователя.
- Параметры:
lot_id (
int
, опционально) – ID лота, на котором проверять баланс.- Результат:
информацию о балансе пользователя.
- Тип результата:
- 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
orstr
) – ID чата (или его текстовое обозначение).last_message_id (
int
) – ID сообщения, с которого начинать историю (фильтр FunPay).interlocutor_username (
str
orNone
, опционально.) – никнейм собеседника. Не нужно указывать для получения истории публичного чата. Так же не обязательно, но желательно указывать для получения истории личного чата.from_id (
int
, опционально.) – все сообщения с ID < переданного не попадут в возвращаемый список сообщений.
- Результат:
история указанного чата.
- Тип результата:
- get_chats_histories(chats_data: dict[int | str, str | None]) dict[int, list[FunPayAPI.types.Message]] #
Получает историю сообщений сразу нескольких чатов (до 50 сообщений на личный чат, до 25 сообщений на публичный чат).
- Параметры:
chats_data (
dict
{int
orstr
:str
orNone
}) –ID чатов и никнеймы собеседников (None, если никнейм неизвестен)
Например: {48392847: «SLLMK», 58392098: «Amongus», 38948728: None}
- Результат:
словарь с историями чатов в формате {ID чата: [список сообщений]}
- Тип результата:
dict
{int
:list
ofFunPayAPI.types.Message
}
- upload_image(image: str | IO[bytes]) int #
Выгружает изображение на сервер FunPay для дальнейшей отправки в качестве сообщения. Для отправки изображения в чат рекомендуется использовать метод
FunPayAPI.account.Account.send_image()
.
- 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_name (
str
orNone
, опционально) – название чата (для возвращаемого объекта сообщения) (не нужно для отправки сообщения в публичный чат).image_id (
int
orNone
, опционально) – ID изображения. Доступно только для личных чатов.add_to_ignore_list (
bool
, опционально) – добавлять ли ID отправленного сообщения в игнорируемый список Runner’а?update_last_saved_message (
bool
, опционально.) – обновлять ли последнее сохраненное сообщение на отправленное в Runner’е?
- Результат:
экземпляр отправленного сообщения.
- Тип результата:
- 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
orstr
orbytes
) – ID изображения / путь до изображения / изображение в виде байтов. Если передан путь до изображения или представление изображения в виде байтов, сначала оно будет выгружено с помощью методаFunPayAPI.account.Account.upload_image()
.chat_name (
str
orNone
, опционально) – Название чата (никнейм собеседника). Нужен для возвращаемого объекта.add_to_ignore_list (
bool
, опционально) – добавлять ли ID отправленного сообщения в игнорируемый список Runner’а?update_last_saved_message (
bool
, опционально) – обновлять ли последнее сохраненное сообщение на отправленное в Runner’е?
- Результат:
объект отправленного сообщения.
- Тип результата:
- send_review(order_id: str, text: str, rating: Literal[1, 2, 3, 4, 5] = 5) str #
Отправляет / редактирует отзыв / ответ на отзыв.
- withdraw(currency: Currency, wallet: Wallet, amount: int | float, address: str) float #
Отправляет запрос на вывод средств.
- Параметры:
currency (
FunPayAPI.common.enums.Currency
) – валюта.wallet (
FunPayAPI.common.enums.Wallet
) – тип кошелька.address (
str
) – адрес кошелька.
- Результат:
кол-во выведенных средств с учетом комиссии FunPay.
- Тип результата:
- get_raise_modal(category_id: int) dict #
Отправляет запрос на получение modal-формы для поднятия лотов категории (игры). !ВНИМАНИЕ! Если на аккаунте только 1 подкатегория, относящаяся переданной категории (игре), то FunPay поднимет лоты данной подкатегории без отправления modal-формы с выбором других подкатегорий.
- 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
ofint
orFunPayAPI.types.SubCategory
) – список подкатегорий, которые необходимо поднять. Если не указаны, поднимутся все подкатегории переданной категории.exclude (
list
ofint
, опционально.) – ID подкатегорий, которые не нужно поднимать.
- Результат:
True
- Тип результата:
- get_user(user_id: int) UserProfile #
Парсит страницу пользователя.
- Параметры:
user_id (
int
) – ID пользователя.- Результат:
объект профиля пользователя.
- Тип результата:
- get_chat(chat_id: int) Chat #
Получает информацию о личном чате.
- Параметры:
chat_id (
int
) – ID чата.- Результат:
объект чата.
- Тип результата:
- get_order(order_id: str) Order #
Получает полную информацию о заказе.
- Параметры:
order_id (
str
) – ID заказа.- Результат:
объекст заказа.
- Тип результата:
- 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
ofstr
, опционально) – исключить заказы с 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
orNone
,list
ofFunPayAPI.types.OrderShortcut
)
- add_chats(chats: list[FunPayAPI.types.ChatShortcut])#
Сохраняет чаты.
- Параметры:
chats (
list
ofFunPayAPI.types.ChatShortcut
) – объекты чатов.
- request_chats() list[FunPayAPI.types.ChatShortcut] #
Запрашивает чаты и парсит их.
- Результат:
объекты чатов (не больше 50).
- Тип результата:
- get_chats(update: bool = False) dict[int, FunPayAPI.types.ChatShortcut] #
Возвращает словарь с сохраненными чатами ({id: types.ChatShortcut})
- get_chat_by_name(name: str, make_request: bool = False) ChatShortcut | None #
Возвращает чат по его названию (если он сохранен).
- Параметры:
- Результат:
объект чата или
None
, если чат не был найден.- Тип результата:
- get_chat_by_id(chat_id: int, make_request: bool = False) ChatShortcut | None #
Возвращает личный чат по его ID (если он сохранен).
- Параметры:
- Результат:
объект чата или
None
, если чат не был найден.- Тип результата:
- get_lot_fields(lot_id: int) LotFields #
Получает все поля лота.
- Параметры:
lot_id (
int
) – ID лота.- Результат:
объект с полями лота.
- Тип результата:
- save_lot(lot_fields: LotFields)#
Сохраняет лот на FunPay.
- Параметры:
lot_fields (
FunPayAPI.types.LotFields
) – объект с полями лота.
- get_category(category_id: int) Category | None #
Возвращает объект категории (игры).
- property categories: list[FunPayAPI.types.Category]#
Возвращает все категории (игры) FunPay (парсятся при первом выполнении метода
FunPayAPI.account.Account.get()
).- Результат:
все категории (игры) FunPay.
- Тип результата:
- get_sorted_categories() dict[int, FunPayAPI.types.Category] #
Возвращает все категории (игры) FunPay в виде словаря {ID: категория} (парсятся при первом выполнении метода
FunPayAPI.account.Account.get()
).- Результат:
все категории (игры) FunPay в виде словаря {ID: категория}
- Тип результата:
- get_subcategory(subcategory_type: SubCategoryTypes, subcategory_id: int) SubCategory | None #
Возвращает объект подкатегории.
- Параметры:
subcategory_type (
FunPayAPI.common.enums.SubCategoryTypes
) – тип подкатегории.subcategory_id (
int
) – ID подкатегории.
- Результат:
объект подкатегории или
None
, если подкатегория не была найдена.- Тип результата:
- property subcategories: list[FunPayAPI.types.SubCategory]#
Возвращает все подкатегории FunPay (парсятся при первом выполнении метода Account.get).
- Результат:
все подкатегории FunPay.
- Тип результата:
- 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()
?