Перейти к содержанию

Пользователь

Очень часто приходится работать с данными пользователя: использовать его имя, создавать его упоминание, но каждый раз делать запрос users.get, а потом получать первый его элемент — не самое эффективное решение, поэтому vkquick использует специальный объект на каждого пользователя, который вы можете создать сами или получить через payload-типы (например, vq.Sender)

User

Класс можно получить по прямому обращению к модулю (vq.User)

Инициализация

Инициализация производится путем передачи в инициализатор одного из следующих аргументов

  1. mention: Строка с упоминанием пользователя ([id100|Имя Фамилия или что-то еще])
  2. user_id: ID пользователя (числом)
  3. screen_name: screen_name пользователя. Например: durov, deknowny, id2423423

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

Чтобы получить информацию о пользователе, нужно вызвать корутинный метод get_info, принимающий в себя *fields аргумент, передающийся в одноименное поле users.get и падеж в опциональный аргумент name_case для поля name_case. После этого возвращается объект со следующими полями и методами

Поля

Имя Тип Описание
info AttrMap Содержит весь ответ, полученный от users.get (Первый элемент поля response в ответе, т.е. вся информация о конкретном пользователе)
fn str Имя пользователя (быстрый доступ, можно также получить через info.first_name)
ln str Фамилия пользователя
id int ID Пользователя

Методы

Один из них — вышеописанный get_info, но он является частью инициализации

  • __format__: форматирование подставит атрибуты объекта в строку, если они обернуты в <>, т.е.

    user = await vq.User(user_id=1).get_info("bdate")
    print(f"{user:<fn> <ln> <info.bdate>}")
    
    Выведет Павел Дуров 10.10.1984

  • mention: Принимает аргумент fstring, в которое интерполируются поля самого объекта (т.е. к строке применяется вышеописанные формат). Для вышесозданного объекта:

    print(user.mention("<fn>"))
    
    Выведет [id1|Павел], т.е. создаст его упоминание