Настройка ответа бота в зависимости от текущего времени

Подробная справочная информация находится в Уроке 10. Запросы и интеграция и Уроке 12. Handlebars и regexp

Получаем и преобразовываем в нужный формат текущее время

Для примера мы используем сервис http://worldclockapi.com/

Вы можете использовать любой другой сервис, отдающий дату и время в формате JSON.

Чтобы получить время, ставим на экран компонент Запрос. После него ставим компонент Логирование. В логировании нам нужно получить переменные обратно в бота.

Из предложенных URL запроса в примере мы будем работать с Coordinated Universal Time

Отправляем POST запрос на URL

http://worldclockapi.com/api/json/utc/now

Находим в переменных ответ

"last_request": {
    "$id": "1",
    "currentDateTime": "2018-10-05T13:40Z",
    "utcOffset": "00:00:00",
    "isDayLightSavingsTime": false,
    "dayOfTheWeek": "Friday",
    "timeZoneName": "UTC",
    "currentFileTime": 131832204392059260,
    "ordinalDate": "2018-278",
    "serviceResponse": null
  }

Из него нас интересует только строка со временем, то есть

{{last_request.currentFileTime}}

Теперь полученное время нужно преобразовать. Используем для этого handlebars:

{{formatDate last_request.currentFileTime 'HH.mm' 'ru'}}
'HH.mm' — формат времени в часы.минуты, обязательно использовать английскую раскладку

Записываем строчку в переменную time. Используем компонент Запись.

Время в переменной time записывается по Москве.


Обрабатываем время и переводим на заданные экраны

Ставим развилку. В поле Имя переменной, откуда развилка возьмёт значение указываем time.

Для примера мы будем делить время на интервалы с 10 до 19 и с 19 до 10.

Регулярное выражение проще составить для первого интервала — с 10 до 19:

^1[0-8]\.[0-5][0-9]$

Добавляем его в Цель, Цель по умолчанию — перевод в интервал с 19 до 10.

Оформляем экраны, бот готов. Подписывайтесь на наш канал @botmothercom и получайте самые свежие новости