QNext. Макрос profile

QNext. Макрос profile


Макрос умеет показывать параметры профиля в разных форматах. Вывод зависит от параметра type, который может принимать одно из значений:


type: value

Макрос покажет значение профиля пользователя Баллы:

!{profile|
  type: value;
  name: Баллы;
}

Значение type: value является по умолчанию, это значит что параметр type можно опустить и записать макрос так:

!{profile|name: Баллы;}

key

Если у вас есть профиль типа Объект и вам необходимо отобразить значение какого либо поля внутри этого объекта, вам необходимо использовать параметр key, в который записывать полный путь до поля, который вы хотите получить. Например если у вас в профиле Объект записан объект update, чтобы получить текст сообщения из этого апдейта, вам необходимо написать такой макрос:

!{profile| 
  type: MyUpdate;
  key: message.text;
}

path

По умолчанию бот пытается загрузить профиль текущего пользователя, если необходимо загрузить профиль другого пользователя, например replyUser, тогда надо воспользоваться параметром path:

!{profile|
  type: value;
  name: Баллы;
  path: replyUser;
}
⚠️ В параметре path необходимо указать путь до юзера, к которому вы хотите применить макрос. Если вы не знаете где взять юзера, воспользуйтесь логами и поищите там вашего юзера.

userId

Если у вас есть id пользователя, чей профиль вы хотите загрузить, вы можете воспользоваться параметром userId:

!{profile|
  type: value;
  name: Баллы;
  userId: 123456;
}


sourceType

По умолчанию загружается профиль Пользователя, если вы хотите загрузить профиль Чата, Участника чата или какой либо другой профиль, необходимо указать тип профиля в параметре sourceType. На момент написания статьи параметр может принимать одно из значений (в будущем список будет пополнятся):

  • user
  • chatMember
  • chat
!{profile|
  type: value;
  name: Баллы;
  sourceType: chatMember
}

В зависимости от значения sourceType, вы можете передать одно из значений:

  • userId
  • chatMemberId
  • chatId

, чтобы уточнить чей именно профиль вы хотите показать.

defaultValue

Если у целевого пользователя нет параметра в профиле, можно вывести значение по умолчанию с помощью параметра defaultValue:

!{profile|
  type: value;
  name: Баллы;
  defaultValue: Нет баллов :(
}


type: sum

Макрос с типом sum покажет сумму параметров профилей разных источников. Источник где собирать сумму необходимо указать с помощью параметра where. На момент написания статьи параметр where может принимать одно из значений:

  • where: vote

where: vote

Покажет сумму всех параметров пользователей проголосовавших в указанном опросе:

!{profile|
  type: sum;
  where: vote;
  profileId: ID профиля;
  contentId: ID контента;
  buttonId: ID кнопки;
}

Параметры contentId и buttonId не обязательные. Если не указать contentId - тогда будет взят тот контент в котором указан макрос. Если не указать buttonId - будет взята кнопка, на которую сейчас нажали. Если такой кнопки нет - тогда будет подсчёт по всем кнопкам контента.


type: allValues

Макрос покажет все имеющиеся значения в профиле:

!{profile| 
  type: allValues;
}

Макрос может принимать значение sourceType указывающий какой тип профиля надо показать, возможные значения:

  • user
  • chatMember
  • chat

По умолчанию макрос покажет значения в формате:

Название: Значение

Если вы хотите изменить формат вывода, используйте параметр template. Шаблон template может содержать свои переменные, указывающие на то, какие поля необходимо отобразить. Например если вы хотите показать значения в формате:

🔸Название = Значение

Используйте следующий макрос:

!{profile| 
  type: allValues;
  template: 🔸$title = $value
}

Шаблон template может содержать следующие переменные:

  • $id - ID параметра профиля
  • $title - название параметра профиля
  • $value - значение
  • $createdAt - дата создания значения
  • $lifeDate - время жизни значения

Чтобы изменить формат вывода даты, используйте параметр dateFormat:

!{profile| 
  type: allValues;
  template: 🔸$title = $value, создано: $createdAt;
  dateFormat: yyyy.mm.dd;
}


type: count

Макрос вернет количество профилей соответствующих заданным условиям.

!{profile| 
 type: count;
 profileId: 123;
 value: 123;
 relationType: =;
}
  • profileId - идентификатор профиля
  • value - проверяемое значение
  • relationType - тип проверки

Поле relationType может иметь одно из следующих значений:

  • = - равно
  • < - меньше чем
  • > - больше чем
  • <= - меньше или равно
  • >= - больше или равно
  • <> - не равно
  • contains - содержит (только для строковых типов)
  • notContains - не содержит (только для строковых типов)



⬅️QNext. Макросы

Report Page