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- не содержит (только для строковых типов)