QNext. Скрипты. Объект qnext
У объекта qnext доступны следующие функции и объекты:
- qnext.getValue - получить значение переменной тригера
- qnext.date - работа с датой
- qnext.time - работа с временем
- qnext.html - объект имеющий различные методы для работы с html разметкой.
- qnext.constants - различные константы
- qnext.telegram - работа с telegram api
- qnext.fetch - http-запросы из скриптов
qnext.getValue
Функция вернет значение переменной тригера. Функция может принимать два параметр: путь до значения и значение по умолчанию:
var message = qnext.getValue("update.message.text", "Нет текста")
qnext.date
Здесь собраны функции для работы с датой.
qnext.date.format
Функция форматирующая вывод даты, например чтобы показать дату регистрации пользователя в вашем боте:
var registerDate = qnext.getValue("client.createdAt");
out.result = qnext.date.format(registerDate, "dd.mm.yyyy hh:MM")
Вывод будет таким: 23.09.2020 06:24. Подробнее про функцию date.format можно почитать в документации.
qnext.date.toLocal
Локальное время бота, т.е. время в часовом поясе бота. Если вызвать без аргументов, тогда функция вернет текущее время. Если передать в качестве аргумента дату, тогда эта дата будет конвертирована в часовой пояс бота.
var currentDate = qnext.date.toLocal(); out.result = qnext.date.format(currentDate, "dd.mm.yyyy hh:MM")
qnext.date.toUtc
Дата по Гринвичу GMT 0. Если вызвать без аргументов, тогда функция вернет текущее время. Если передать в качестве аргумента дату, тогда эта дата будет конвертирована в часовой пояс GMT 0.
var utcDate = qnext.date.toUtc(); out.result = qnext.date.format(utcDate, "dd.mm.yyyy hh:MM")
qnext.time
В объекте qnext.time собраны функции для работы с временем.
qnext.time.toHMS
Принимает время в миллисекундах, и выводит в формате чч:мм:сс.
var msec = 320000 // миллисекунды var text = qnext.time.toHMS(msec); // 00:05:20
qnext.time.toHM
Выводит время в формате чч:мм.
qnext.time.toMS
Выводит время в формате мм:сс.
qnext.time.span
qnext.time.span - это объект со своим набором функций и свойство. У него много различных свойств и функций, все они описаны на странице QNext. Scripts. Span
qnext.html
Это объект, который содержит в себе различные вспомогательные функция для обработки html-разметки.
qnext.html.link- получить ссылку с текстом
Следующие скрипт покажет имя пользователя с t.me... ссылкой на него:
var user = qnext.getValue("user");
out.result = qnext.html.link(user.name, "http://t.me/"+user.username)
qnext.html.hiddenLink- скрытая ссылка на фото/видео. Используется если необходимо показать превью на фото/видео, без отображения самой ссылки.
var user = qnext.getValue("user");
out.result = qnext.html.hiddenLink("http://t.me/"+user.username)
qnext.html.italic- наклонный текстqnext.html.bold- жирный текстqnext.html.code- моноширинный текстqnext.html.pre- моноширинный многострочный текстqnext.html.underline- подчеркнутый текстqnext.html.strike- зачеркнутый текст
Все эти функции работают одинаково, надо одним параметром передать текст, к которому будет применено указанное форматирование.
qnext.html.encode- кодирует теги < > в символы < и > чтобы игнорировать разметку.qnext.html.decode- делает обратное действие, символы < и > преобразует в < >qnext.html.entities.apply- применяет telegram разметку к тексту и создает текст с html разметкой.
Метод entities.apply возвращает на выходе такой же форматированный текст, каким он был отправлен в телеграмм.
var text = qnext.getValue("update.message.text")
var entities = qnext.getValue("update.message.entities")
out.htmlCode = qnext.html.entities.apply(text, entities, "html");
out.mdCode = qnext.html.entities.apply(text, entities, "markdown");
qnext.constants
qnext.constants.NewLine - переход на новую строку
qnext.telegram
В скриптах можно вызвать telegram api метод, с помощью функции:
qnext.telegram.api(methodName, body, token)
- methodName - название метода из telegram bot api
- body - объект содержащий параметры для передачи в telegram bot api
- token - токен бота, с помощью которого необходимо отправить запрос в telegram bot api. Параметр не обязательный, если его не передать, будет использован токен текущего бота.
Например чтобы отправить текстовое сообщение от имени текущего бота, воспользуйтесь методом:
var body = {
chat_id: 1234567,
text: "Hello, World!"
}
qnext.telegram.api("sendMessage", body)
⚠️ Методы telegram.api доступны только в скриптах с включенным асинхронным режимом.
Полный список методов api и их параметров читайте в документации telegram bot api.
qnext.fetch
qnext.fetch - это функция, которая делает http запрос, под капотом используется nodejs модуль node-fetch. Функция принимает 3 параметра:
- url - ссылка которую необходимо дернуть
- sendOptions - опции, передаваемые в функцию fetch, список принимаемых параметров можете посмотреть в документации модуля node-fetch.
- resultOptions - опции влияющие на результат загрузки.
Объект resultOptions может иметь следующие поля:
- type - тип результата: text, json, blob ...