Архитектурная роль
Модуль account предоставляет класс Account, который управляет взаимодействием с API FunPay. Он отвечает за авторизацию, получение данных об аккаунте, отправку сообщений, обработку заказов и другие операции с аккаунтом.
Компоненты и логика
Account
- Назначение: Класс для управления аккаунтом FunPay.
- Аргументы и связи:
- golden_key (
str): Токен аккаунта. - user_agent (
str | None): User-agent браузера. - requests_timeout (
int | float): Тайм-аут запросов. - proxy (
dict | None): Прокси для запросов. - locale (
Literal['ru', 'en', 'uk'] | None): Язык аккаунта.
__init__
- Назначение: Инициализирует экземпляр класса Account.
- Аргументы и связи:
- golden_key (
str): Токен аккаунта. - user_agent (
str | None): User-agent браузера. - requests_timeout (
int | float): Тайм-аут запросов. - proxy (
dict | None): Прокси для запросов. - locale (
Literal['ru', 'en', 'uk'] | None): Язык аккаунта. - Взаимодействие: Нет.
__update_cookies
- Назначение: Обновляет куки на основе ответа сервера.
- Аргументы и связи:
- response (
requests.Response): Объект ответа сервера. - Взаимодействие: Нет.
method
- Назначение: Отправляет запрос к FunPay.
- Аргументы и связи:
- request_method (
str): Метод запроса. - api_method (
str): Метод API. - headers (
dict): Заголовки запроса. - payload (
Any): Полезная нагрузка. - exclude_phpsessid (
bool): Исключить PHPSESSID из куки. - raise_not_200 (
bool): Возбуждать исключение при статусе != 200. - locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Нет.
get
- Назначение: Получает/обновляет данные об аккаунте.
- Аргументы и связи:
- update_phpsessid (
bool): Обновить phpsessid. - Взаимодействие: Вызывает метод method().
runner_request
- Назначение: Отправляет запрос к эндпоинту Runner/.
- Аргументы и связи:
- payload (
dict): Полезная нагрузка. - Взаимодействие: Вызывает метод method().
get_payload_data
- Назначение: Формирует данные для запроса.
- Аргументы и связи:
- chats_data (
dict[int | str, str | None] | None | list[int | str]): Данные чатов. - last_order_event_tag (
str | None): Тег последнего события заказа. - last_msg_event_tag (
str | None): Тег последнего события сообщения. - buyer_viewing_ids (
list[int | str] | None): ID покупателей. - request (
None | dict): Дополнительный объект запроса. - include_runner_context (
bool): Включить контекст Runner. - Взаимодействие: Нет.
abuse_runner
- Назначение: Формирует и добавляет запрос в очередь Runner.
- Аргументы и связи:
- chats_data (
dict[int | str, str | None] | None): Данные чатов. - last_order_event_tag (
str | None): Тег последнего события заказа. - last_msg_event_tag (
str | None): Тег последнего события сообщения. - buyer_viewing_ids (
list[int | str] | None): ID покупателей. - request (
None | dict): Дополнительный объект запроса. - include_runner_context (
bool): Включить контекст Runner. - Взаимодействие: Вызывает метод runner_request.
get_subcategory_public_lots
- Назначение: Получает список всех опубликованных лотов переданной подкатегории.
- Аргументы и связи:
- subcategory_type (SubCategoryTypes): Тип подкатегории.
- subcategory_id (
int): ID подкатегории. - locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Вызывает метод method().
get_my_subcategory_lots
- Назначение: Получает список лотов переданной подкатегории на аккаунте.
- Аргументы и связи:
- subcategory_id (
int): ID подкатегории. - locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Вызывает метод method().
get_lot_page
- Назначение: Возвращает страницу лота.
- Аргументы и связи:
- lot_id (
int): ID лота. - locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Вызывает метод method().
get_balance
- Назначение: Получает информацию о балансе пользователя.
- Аргументы и связи:
- lot_id (
int): ID лота. - Взаимодействие: Вызывает метод method().
get_chat_history
- Назначение: Получает историю указанного чата.
- Аргументы и связи:
- chat_id (
int | str): ID чата. - last_message_id (
int | None): ID последнего сообщения. - interlocutor_username (
str | None): Никнейм собеседника. - from_id (
int): ID сообщения. - Взаимодействие: Вызывает метод method().
parse_chats_histories
- Назначение: Разбирает объекты истории чатов и формирует словарь сообщений по каждому чату.
- Аргументы и связи:
- chats_data (
dict[int | str, str | None]): ID чатов и никнеймы собеседников. - objects (
list[dict]): Список объектов из ответа сервера. - Взаимодействие: Нет.
get_chats_histories
- Назначение: Получает историю сообщений сразу нескольких чатов.
- Аргументы и связи:
- chats_data (
dict[int | str, str | None]): ID чатов и никнеймы собеседников. - include_runner_context (
bool): Включить контекст Runner. - Взаимодействие: Вызывает метод abuse_runner.
upload_image
- Назначение: Выгружает изображение на сервер FunPay.
- Аргументы и связи:
- image (
str | IO[bytes]): Путь до изображения или представление изображения в виде байтов. - type_ (
Literal['chat', 'offer']): Тип загрузки. - Взаимодействие: Вызывает метод method().
send_message
- Назначение: Отправляет сообщение в чат.
- Аргументы и связи:
- chat_id (
int | str): ID чата. - text (
str | None): Текст сообщения. - chat_name (
str | None): Название чата. - interlocutor_id (
int | None): ID собеседника. - image_id (
int | None): ID изображения. - add_to_ignore_list (
bool): Добавить ID сообщения в игнорируемый список Runner’а. - update_last_saved_message (
bool): Обновить последнее сохраненное сообщение. - leave_as_unread (
bool): Оставить сообщение непрочитанным. - Взаимодействие: Вызывает метод method().
send_image
- Назначение: Отправляет изображение в чат.
- Аргументы и связи:
- chat_id (
int): ID чата. - image (
int | str | IO[bytes]): ID изображения / путь до изображения / изображение в виде байтов. - chat_name (
str | None): Название чата. - interlocutor_id (
int | None): ID собеседника. - add_to_ignore_list (
bool): Добавить ID сообщения в игнорируемый список Runner’а. - update_last_saved_message (
bool): Обновить последнее сохраненное сообщение. - leave_as_unread (
bool): Оставить сообщение непрочитанным. - Взаимодействие: Вызывает метод upload_image и send_message.
send_review
- Назначение: Отправляет/редактирует отзыв/ответ на отзыв.
- Аргументы и связи:
- order_id (
str): ID заказа. - text (
str): Текст отзыва. - rating (
Literal[1, 2, 3, 4, 5]): Рейтинг. - Взаимодействие: Вызывает метод method().
delete_review
- Назначение: Удаляет отзыв/ответ на отзыв.
- Аргументы и связи:
- order_id (
str): ID заказа. - Взаимодействие: Вызывает метод method().
refund
- Назначение: Оформляет возврат средств за заказ.
- Аргументы и связи:
- order_id (
str): ID заказа. - Взаимодействие: Вызывает метод method().
withdraw
- Назначение: Отправляет запрос на вывод средств.
- Аргументы и связи:
- currency (enums.Currency): Валюта.
- wallet (enums.Wallet): Тип кошелька.
- amount (
int | float): Кол-во средств. - address (
str): Адрес кошелька. - Взаимодействие: Вызывает метод method().
get_raise_modal
- Назначение: Отправляет запрос на получение modal-формы для поднятия лотов категории.
- Аргументы и связи:
- category_id (
int): ID категории. - Взаимодействие: Вызывает метод method().
raise_lots
- Назначение: Поднимает все лоты всех подкатегорий переданной категории.
- Аргументы и связи:
- category_id (
int): ID категории. - subcategories (
list[int | types.SubCategory]): Список подкатегорий. - exclude (
list[int]): ID подкатегорий для исключения. - Взаимодействие: Вызывает метод get_raise_modal.
get_user
- Назначение: Парсит страницу пользователя.
- Аргументы и связи:
- user_id (
int): ID пользователя. - locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Вызывает метод method().
get_chat
- Назначение: Получает информацию о личном чате.
- Аргументы и связи:
- chat_id (
int): ID чата. - with_history (
bool): Получать историю сообщений. - locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Вызывает метод method().
get_order_shortcut
- Назначение: Получает краткую информацию о заказе.
- Аргументы и связи:
- order_id (
str): ID заказа. - Взаимодействие: Вызывает метод method().
get_orders_by_ids
- Назначение: Получает полную информацию о заказах.
- Аргументы и связи:
- order_ids (
str): ID заказов. - include_details (
bool): Включить детали. - include_users (
bool): Включить пользователей. - include_review (
bool): Включить отзыв. - locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Вызывает метод method().
get_order
- Назначение: Получает полную информацию о заказе.
- Аргументы и связи:
- order_id (
str): ID заказа. - include_details (
bool): Включить детали. - include_users (
bool): Включить пользователей. - include_review (
bool): Включить отзыв. - locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Вызывает метод method().
get_sales
- Назначение: Получает и парсит список заказов.
- Аргументы и связи:
- start_from (
str | None): ID заказа, с которого начать список. - include_paid (
bool): Включить заказы, ожидающие выполнения. - include_closed (
bool): Включить закрытые заказы. - include_refunded (
bool): Включить заказы, за которые запрошен возврат средств. - exclude_ids (
list[str] | None): Исключить заказы с ID из списка. - id (
str | None): ID заказа. - buyer (
str | None): Никнейм покупателя. - state (
str | None): Статус заказа. - game (
int | None): ID игры. - section (
str | None): ID категории. - server (
int | None): ID сервера. - side (
int | None): ID стороны. - subcategories (
dict[str, tuple[types.SubCategoryTypes, int]] | None): Словарь подкатегорий. - more_filters (
dict): Дополнительные фильтры. - Взаимодействие: Вызывает метод method().
get_sells
- Назначение: Получает и парсит список заказов (устаревший метод).
- Аргументы и связи:
- start_from (
str | None): ID заказа, с которого начать список. - include_paid (
bool): Включить заказы, ожидающие выполнения. - include_closed (
bool): Включить закрытые заказы. - include_refunded (
bool): Включить заказы, за которые запрошен возврат средств. - exclude_ids (
list[str] | None): Исключить заказы с ID из списка. - id (
str | None): ID заказа. - buyer (
str | None): Никнейм покупателя. - state (
str | None): Статус заказа. - game (
int | None): ID игры. - section (
str | None): ID категории. - server (
int | None): ID сервера. - side (
int | None): ID стороны. - more_filters (
dict): Дополнительные фильтры. - Взаимодействие: Вызывает метод method().
add_chats
- Назначение: Сохраняет чаты.
- Аргументы и связи:
- chats (
list[types.ChatShortcut]): Объекты чатов. - Взаимодействие: Нет.
request_chats
- Назначение: Запрашивает чаты и парсит их.
- Аргументы и связи: Нет.
- Взаимодействие: Вызывает метод method().
get_chats
- Назначение: Возвращает словарь с сохраненными чатами.
- Аргументы и связи:
- update (
bool): Обновять список чатов. - Взаимодействие: Вызывает метод request_chats.
get_chat_by_name
- Назначение: Возвращает чат по его названию.
- Аргументы и связи:
- name (
str): Название чата. - make_request (
bool): Обновять сохраненные чаты. - Взаимодействие: Вызывает метод request_chats.
get_chat_by_id
- Назначение: Возвращает чат по его ID.
- Аргументы и связи:
- chat_id (
int): ID чата. - make_request (
bool): Обновять сохраненные чаты. - Взаимодействие: Вызывает метод request_chats.
calc
- Назначение: Вычисляет стоимость лота.
- Аргументы и связи:
- subcategory_type (enums.SubCategoryTypes): Тип подкатегории.
- subcategory_id (
int | None): ID подкатегории. - game_id (
int | None): ID игры. - price (
int | float): Цена. - Взаимодействие: Нет.
get_lot_fields
- Назначение: Получает все поля лота.
- Аргументы и связи:
- lot_id (
int): ID лота. - Взаимодействие: Нет.
get_chip_fields
- Назначение: Получает поля игровой валюты.
- Аргументы и связи:
- subcategory_id (
int): ID подкатегории. - Взаимодействие: Нет.
save_offer
- Назначение: Сохраняет лот на FunPay.
- Аргументы и связи:
- offer_fields (
types.LotFields): Объект с полями лота. - locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Вызывает метод method().
save_chip
- Назначение: Сохраняет игровую валюту на FunPay.
- Аргументы и связи:
- chip_fields (types.ChipFields): Объект с полями игровой валюты.
- locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Вызывает метод method().
save_lot
- Назначение: Сохраняет лот на FunPay.
- Аргументы и связи:
- lot_fields (
types.LotFields): Объект с полями лота. - locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Вызывает метод method().
delete_lot
- Назначение: Удаляет лот.
- Аргументы и связи:
- lot_id (
int): ID лота. - Взаимодействие: Вызывает метод method().
get_exchange_rate
- Назначение: Получает курс обмена текущей валюты аккаунта на переданную.
- Аргументы и связи:
- currency (
types.Currency): Валюта. - Взаимодействие: Вызывает метод method().
get_buyer_viewing
- Назначение: Получает информацию о покупателе.
- Аргументы и связи:
- buyer_id (
int): ID покупателя. - Взаимодействие: Вызывает метод method().
get_buyers_viewing
- Назначение: Получает информацию о покупателях.
- Аргументы и связи:
- ids (
int): ID покупателей. - Взаимодействие: Вызывает метод method().
get_wallets
- Назначение: Получает сохраненные кошельки.
- Аргументы и связи: Нет.
- Взаимодействие: Нет.
save_wallets
- Назначение: Сохраняет кошельки.
- Аргументы и связи:
- wallets (list(types.Wallet)): Список кошельков.
- Взаимодействие: Нет.
get_category
- Назначение: Возвращает объект категории.
- Аргументы и связи:
- category_id (
int): ID категории. - Взаимодействие: Нет.
categories
- Назначение: Возвращает все категории FunPay.
- Аргументы и связи: Нет.
- Взаимодействие: Вызывает метод get.
get_sorted_categories
- Назначение: Возвращает все категории FunPay в виде словаря.
- Аргументы и связи: Нет.
- Взаимодействие: Вызывает метод get.
get_subcategory
- Назначение: Возвращает объект подкатегории.
- Аргументы и связи:
- subcategory_type (
types.SubCategoryTypes): Тип подкатегории. - subcategory_id (
int): ID подкатегории. - Взаимодействие: Нет.
subcategories
- Назначение: Возвращает все подкатегории FunPay.
- Аргументы и связи: Нет.
- Взаимодействие: Вызывает метод get.
get_sorted_subcategories
- Назначение: Возвращает все подкатегории FunPay в виде словаря.
- Аргументы и связи: Нет.
- Взаимодействие: Вызывает метод get.
logout
- Назначение: Выходит с аккаунта FunPay.
- Аргументы и связи: Нет.
- Взаимодействие: Нет.
is_initiated
- Назначение: Проверяет инициализирован ли класс Account.
- Аргументы и связи: Нет.
- Взаимодействие: Нет.
__setup_categories
- Назначение: Парсит категории и подкатегории с основной страницы.
- Аргументы и связи:
- html (
str): HTML страница. - Взаимодействие: Нет.
__parse_messages
- Назначение: Парсит сообщения.
- Аргументы и связи:
- json_messages (
dict): JSON сообщения. - chat_id (
int | str): ID чата. - interlocutor_id (
int | None): ID собеседника. - interlocutor_username (
str | None): Никнейм собеседника. - from_id (
int): ID сообщения. - is_private (
bool | None): Чат приватный. - tag (
str | None): Тег. - Взаимодействие: Нет.
__update_csrf_token
- Назначение: Обновляет CSRF токен.
- Аргументы и связи:
- parser (
BeautifulSoup): Объект BeautifulSoup. - Взаимодействие: Нет.
__parse_buyer_viewing
- Назначение: Парсит информацию о покупателе.
- Аргументы и связи:
- json_buyer_viewing (
dict): JSON информация о покупателе. - Взаимодействие: Нет.
__parse_order
- Назначение: Парсит информацию о заказе.
- Аргументы и связи:
- order_data (
dict): Данные о заказе. - locale (
Literal['ru', 'en', 'uk']): Язык. - Взаимодействие: Нет.
chat_id_private
- Назначение: Проверяет, является ли чат приватным.
- Аргументы и связи:
- chat_id (
int | str): ID чата. - Взаимодействие: Нет.
bot_character
- Назначение: Возвращает символ бота.
- Аргументы и связи: Нет.
- Взаимодействие: Нет.
old_bot_character
- Назначение: Возвращает старый символ бота.
- Аргументы и связи: Нет.
- Взаимодействие: Нет.
zero_width_suffix
- Назначение: Возвращает нулевую ширину суффикс.
- Аргументы и связи: Нет.
- Взаимодействие: Нет.
locale
- Назначение: Возвращает язык аккаунта.
- Аргументы и связи: Нет.
- Взаимодействие: Нет.
normalize_url
- Назначение: Нормализует URL.
- Аргументы и связи:
- api_method (
str): Метод API. - locale (
Literal['ru', 'en', 'uk'] | None): Язык. - Взаимодействие: Нет.
is_funpay_api_method
- Назначение: Проверяет, является ли метод API FunPay.
- Аргументы и связи:
- api_method (
str): Метод API. - Взаимодействие: Нет.