Skip to content

Принцип работы шаблонизатора для команд

khades edited this page Dec 9, 2017 · 4 revisions

Для работы команд используется шаблонизатор mustache.

Принцип работы

  1. Взять строку, которую надо отобразить в чате
  2. Запихнуть с специальные места в этой строке данные из списка значений о канале, на котором была запрошена команда в чат

В списке значений о канале бывает два типа переменных

  1. Логические (да или нет), которые используются для того чтобы шаблонизатор мог показывать разные ответы, например том случае когда стрим онлайн или оффлайн
  2. Остальные - они просто подставляются в строку

Подстановка значений

Чтобы вставить с простой текст значение о канале, надо обернуть имя параметра из списка значений о канале в двойные фигурные скобочки

Привет {{ username }}

Если в списке значений будет параметр username - шаблонизатор его подставит

Логические операции

Шаблонизатор умеет показывать строку в том случае, если какоето значение верно или не верно

Пример

{{#StreamStatus.Online}} Игры на стриме: {{ GetGamesHistory }}{{/StreamStatus.Online}}{{^StreamStatus.Online}} Стрим оффлайн {{/StreamStatus.Online}}

В этой команде включено оба случая, когда переменная StreamStatus.Online верна и ложна (переменная показывает идёт ли стрим)

Разберём поэтапно

{{#StreamStatus.Online}} Игры на стриме: {{ GetGamesHistory }}{{/StreamStatus.Online}}

Если управляющая конструкция имеет хештег перед именем переменной, то содержимое конструкции будет выведено в том случае, если переменная имеет значение "true", закрывается конструкция всегда управляющей конструкцией с символом "/" перед переменной, это один if-block

{{^StreamStatus.Online}} Стрим оффлайн {{/StreamStatus.Online}}

Если управляющая конструкция имеет крышечку-крышечку перед именем переменной, то содержимое конструкции будет выведено в том случае, если переменная имеет значение "false", закрывается конструкция всегда такой же управляющей конструкцией с символом "/" перед переменной.

Весь список переменных, используемых в шаблонизаторе можно увидеть тут - Описание полей объекта канала