Files
stbf/stbf-templates/README.MD
Ruslan Penkrat 2103d03611
All checks were successful
continuous-integration/drone/push Build is passing
#1 initial sending media files support
2021-09-12 01:35:23 +03:00

112 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Поддержка шаблонов и конфигурации
### Основные секции
```xml
<flow>
<actions> </actions>
<screens> </screens>
<commands> </commands>
<media> </media>
</flow>
```
### Actions
Action - Это действие пользователя бота, которое бот должен обработать, а также соответсвующая кнопка или inline-кнопка.
```xml
<action id="10002" name="help-action" command="/help">Help</action>
```
`id`, `name` - идентификаторы узла (экшена)
`command` - команда Telegram, должна начинаться со знака "/"
`requestContact="true|false"` - кнопка запроса контактных данных
`requestLocation="true|false"` - кнопка запроса метоположения
содержимое тега - вводимый текст, используется как экранная кнопка
`url` - ссылка для inline-кнопки
`callbackData` - callback данные для inline-кнопки
`callbackDataRegexp` - regexp для обработки callback программным способом
`callbackDataStartWith` - префикс, для обработки callback программным способом
### Screens
Screen - то, что бот ответит пользователю, обычно текст и набор кнопок с действиями. В качестве текста может задаваться шаблон, контекст передается при программной обработке при установленном `TemplateRenderer`
```xml
<screen id="20001" name="on-start-screen">
<text>This is demo bot</text>
<keyboard>
<row>
<button actionRef="help-action">Action.name</button>
</row>
</keyboard>
</screen>
```
`mediaRef` - ссылка на элемент медиа, который будет оправлен ботом
`text` - выводимый текст
`keyboard` - описание клавиатуры
### Keyboard
Описание клавиатуры
#### Row
Одна строка кнопок клавиатуры
#### Button
`if` - видимость кнопки, значение `true`, `false` или имя метода из контекста экрана (для программной обработки)
`actionRef` - `id` или `name` action, описанный в соответсвующей секции
Если кнопка не ссылается на action, то можно задать следующие свойства:
`url` - ссылка для inline-кнопки
`callbackData` - callback данные для inline-кнопки
`callbackDataRegexp` - regexp для обработки callback программным способом
`callbackDataStartWith` - префикс, для обработки callback программным способом
### Commands
Простая команда, при совершении `action` будет выведен `screen`. Используется для простых действий, не требующей программной логики.
```xml
<command actionRef="start-action" screenRef="on-start-screen" id="30001" name="startCommand"/>
```
`actionRef` - ссылка на action, может использоваться id или name
`screenRef` - ссылка на screen, может использоваться id или name
`edit` = `true|false`- исходное сообщение будет отредактировано (актуально для callback)
`replace` = `true|false`- исходное сообщение будет удалено, и отправлено новое (актуально для callback,
если меняется тип сообщения т.е. сообщение с фото, видео должно быть заменено на текстовое и наоборот)
### Media
Описывает медиа-ресурсы, доступные для отправки ботом
```xml
<media>
<video id="40001" url="https://example.com/video.mp4"/>
<photo id="40002" url="https://example.com//photo.png"/>
</media>
```