Архитектурная роль

Модуль 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.
  • Взаимодействие: Нет.

Граф зависимостей