Skip to content
Gallery
Кейс Cinnabon
Share
Explore
Сценарии чат-бота

icon picker
Файлы и переменные

Файлы:

main.sc - стартовый, с него начинается загрузка сценария ​callback.sc - "ловит" кнопки, на которые нажал пользователь во время работы с ботом, в зависимости от этого переключает сценарии (стейт для обработки события telegramCallbackQuery) ​checklist.sc - стейты для обработки выполнения чек-листа, здесь же формируютя сообщения в групповой чат о процессе выполнения чек-листа и исполнителю чек-листа о шагах, которые необходимо выполнить ​knowledge_base.sc - файл с выводом инлайнкнопок и ссылками на различные инструкции ​reminder.sc - файл с обработкой тегов "запустить напоминания/удалить напоминания" (содержит стейты для запуска и обработки напоминаний) ​telegram_functions.is - файлы с функциями Telegram API на JS. ​utils.js - файл с функцией подготовки чек-листа к запуску. Объявляет необходимые переменные и присваивает им значения. ​dicts/checklist.yaml - словарь, выводит задания по чек-листу в зависимости от дня недели, отрабатывает в скриптах файла checklist.sс
image.png
Файлы автотестов: ​test_checklist_report.xml - проверяет работу модуля Формирования сообщений ​test_error_counter.xml - проверяет работу счетчика ошибок и функции отправки сообщений ​est_reminder.xml - проверяет работу модуля Напоминания ​test_start_checklist.xml - проверяет работу модуля Работа с Чек-листом
image.png

Переменные:

main.sc $session.stepNumber - переменная шага выполнения чек листа, номер обозначает пункт, находящийся в работе $session.ErrorCounter - переменная ошибок, после 3-й ошибки куратору в общую группу выводится сообщение, что у сотрудника проблема на (stepNumber) шаге выполнения чек листа
callback.sc $request.rawRequest.callback_query.data - Объект запроса в исходном виде для последующей обработки в сценарии callback_query.data - результат нажатия на кнопки "База знаний" - переход в стейт /KnowledgeBase, "Старт" - выполняется скрипт и запускается Чек-лист, "Назад в меню" - переход в стейт /MainMenu $client.amountStartTimeInMilliseconds = $jsapi.timeForZone("Europe/Moscow") - время запуска чек-листа, время московское. var dayInAccs = $nlp.inflect(checklist[$session.checklistType].dayName, "accs"); - применен встроенный сервис $nlp.inflect - склоняет слово в требуемый падеж $client.name - имя сотрудника $client.username - ник сотрудника в ТМ message - сформированное сообщение $temp.response - переменная, существующая только в рамках данного стейта (ReceiptCallbackQuery), ответ пользователю
reminder.sc: $client.eventId - id напоминания $pushgate.cancelEvent($client.eventId) - Метод отменяет событие, ранее созданное при помощи метода $pushgate.createEvent. $reactions.answer("Все напоминания удалены") - Метод выводит простой текстовый ответ. $reactions.setClientTimezone("Europe/Moscow") - Метод позволяет установить часовой пояс текущего клиента.
utils.js session.clientChatId - id сотрудника client.id - id чата с сотрудником client.report - массив с отчетом (фотографии выполненных шагов Чек-листа) session.early_id - id сообщения, которое нужно будет удалить при срабаытывании напомнинаия session.early_text - текст сообщения, который нужно будет удалить при срабаытывании напомнинаия session.checklistType - текущий день недели, используется для работы со словарем checklist.yaml

Проект:

Архив с проектом для платформы .
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.