В 🗄форме в настройках поля 🔀branch появилась опция Скрытое ветвление. Если она включена, тогда кнопки поля branch не будут отображаться пользователю: при переходе на это поле, произойдет автоматический выбор первой кнопки, которая удовлетворяет условиям ограничений уставленным в настройках этой кнопки.
@QNextBot #form
В 🗄форме в настройках поля 🔀branch появилась опция Скрытое ветвление. Если она включена, тогда кнопки поля branch не будут отображаться пользователю: при переходе на это поле, произойдет автоматический выбор первой кнопки, которая удовлетворяет условиям ограничений уставленным в настройках этой кнопки.
@QNextBot #form
У ограничения 🚧profileValue появилась возможность проверять есть ли в принципе запись этого параметра у пользователя.
✔️ - запись есть
✖️ - записи нет
@QNextBot #restriction
У ограничения 🚧profileValue появилась возможность проверять есть ли в принципе запись этого параметра у пользователя.
✔️ - запись есть
✖️ - записи нет
@QNextBot #restriction
Новые ограничения:
🚧hasAttachment - проверяет наличие файла, любого типа или какого то определенного.
🚧isForwardMessage - проверяет была ли пересылка сообщения
🚧isViaBot - проверят кто отправил сообщение бот или нет.
@QNextBot #restriction
🚧hasAttachment - проверяет наличие файла, любого типа или какого то определенного.
🚧isForwardMessage - проверяет была ли пересылка сообщения
🚧isViaBot - проверят кто отправил сообщение бот или нет.
@QNextBot #restriction
В настройках команды появилась опция ☑️Продолжить, если её включить, тогда после выполнении этой команды, бот будет пытаться искать следующую подходящую команду. Например Если у вас есть два регулярных выражения, и в первом вы укажите опцию ☑️Продолжить, тогда будут выполнены обе команды.
@QNextBot #command
@QNextBot #command
В настройках реакции ⚡️message есть опция forceReply. Если её включить после отправки сообщения у всех участников чата тут откроется панель Ответить. Т.е. случится то же самое что если бы юзер получатель сам нажал кнопку Ответить.
Опция selective: Если выключена - тогда опция работает на всех участников. Если включена - тогда только для тех кто mentioned в сообщении или на кого сделали reply в том же чате.
@QNextBot #reaction
В настройках реакции ⚡️message есть опция forceReply. Если её включить после отправки сообщения у всех участников чата тут откроется панель Ответить. Т.е. случится то же самое что если бы юзер получатель сам нажал кнопку Ответить.
Опция selective: Если выключена - тогда опция работает на всех участников. Если включена - тогда только для тех кто mentioned в сообщении или на кого сделали reply в том же чате.
@QNextBot #reaction
У 🗄формы появилось новое 📚list. Создается это поле так же как и select или branch, т.е. вы создаете кнопки внутри поля. При заполнении этого поля, пользователю необходимо будет выбрать значение в выпадающем inline списке, в котором можно искать нужную кнопку написав в поле ввода название этой кнопки. Поле отлично подойдет если у вас много кнопок в поле select.
@QNextBot #form
У 🗄формы появилось новое 📚list. Создается это поле так же как и select или branch, т.е. вы создаете кнопки внутри поля. При заполнении этого поля, пользователю необходимо будет выбрать значение в выпадающем inline списке, в котором можно искать нужную кнопку написав в поле ввода название этой кнопки. Поле отлично подойдет если у вас много кнопок в поле select.
@QNextBot #form
Статья о том как пользоваться скриптами в qnext: https://telegra.ph/QNextBot-Scripts-10-29
@QNextBot #docs
@QNextBot #docs
Telegraph
QNext. Скрипты
Общие сведения Использование макроса !{script} Использование реакции runScript Объект qnext Асинхронный режим Экспорт значений Ограничения - Время - setInterval и setTimeout ♒️Библиотека скриптов Общие сведения О том как пользоваться скриптами в конструкторе…
Можно импортировать юзеров из excel файла.
Прежде чем импортировать надо создать excel конвертер, в этом конвертере надо указать колонки с информацией юзера. Колонка ID обязательная. Колонки name и username не обязательные.
Прежде чем записать юзера в базу, бот попытается отправить ему невидимое сообщение (⚡️sendChatAction), если бот получит от телеграм ошибку о том что юзер не запускал бота или юзер заблокировал бота - тогда этот юзер не будет импортирован
@QNextBot #users
Можно импортировать юзеров из excel файла.
Прежде чем импортировать надо создать excel конвертер, в этом конвертере надо указать колонки с информацией юзера. Колонка ID обязательная. Колонки name и username не обязательные.
Прежде чем записать юзера в базу, бот попытается отправить ему невидимое сообщение (⚡️sendChatAction), если бот получит от телеграм ошибку о том что юзер не запускал бота или юзер заблокировал бота - тогда этот юзер не будет импортирован
@QNextBot #users
Реакция ⚡️uploadFile умеет загружать в телеграм файлы по ссылке. После загрузки файл будет доступен в переменной:
1) Нельзя загрузить файл больше 10мб.
2) Если файл грузится дОльше 10 секунд, загрузка будет принудительно прервана.
3) Если файл был успешно загружен, результат кешируется без ограничения по времени.
4) Если файл загрузить не удалось, то результат кешируется на 1 минуту. Т.е. бот не будет пытаться повторно загрузить этот файл в течении указанного периода.
@QNextBot #reaction
${uploadedFile}
Эту переменную можно использовать например в реакции ⚡️message, чтобы прикрепить этот файл к сообщению. Чтобы прикрепить файл к реакции message, используйте макрос: !{attachment| path: uploadedFile}
У реакции есть ограничения:1) Нельзя загрузить файл больше 10мб.
2) Если файл грузится дОльше 10 секунд, загрузка будет принудительно прервана.
3) Если файл был успешно загружен, результат кешируется без ограничения по времени.
4) Если файл загрузить не удалось, то результат кешируется на 1 минуту. Т.е. бот не будет пытаться повторно загрузить этот файл в течении указанного периода.
@QNextBot #reaction
Новая сущность на платформе: 💼Динамические переменные. Динамические переменные можно использовать когда необходимо в нескольких местах получить какое либо значение путем сложных вычислений. Полученное значение кэшируется на указанное время.
Пример где можно использовать: Например вам необходимо загрузить json строку, выделить от туда какое то значение и преобразовать её с помощью скрипта. Все эти действия могут выполнятся длительное время, особенно загрузка по сети. Для это цели можно создать 💼Динамическую переменную, у этой переменной есть свой 🔗Триггер Сборки. Внутри тригера вы делаете все необходимые вычисления, а затем сохраняете значение с помощью реакции ⚡️writeDynamicVariable.
После этого в том месте где вам необходимо получить значение этой переменной, необходимо вызвать реакцию ⚡️readDynamicVariable. Эта реакция выполнит 🔗Триггер Сборки и сохранит значение в кэше. В следующий раз когда вы выполните реакцию ⚡️readDynamicVariable, бот проверит наличие переменной в кеше, а также проверит время кеширования, если время вышло - бот выполнит тригер и вернет новое обновленное значение.
После реакции ⚡️readDynamicVariable значение вашей динамической переменной будет доступно в переменной
@QNextBot #reaction
Новая сущность на платформе: 💼Динамические переменные. Динамические переменные можно использовать когда необходимо в нескольких местах получить какое либо значение путем сложных вычислений. Полученное значение кэшируется на указанное время.
Пример где можно использовать: Например вам необходимо загрузить json строку, выделить от туда какое то значение и преобразовать её с помощью скрипта. Все эти действия могут выполнятся длительное время, особенно загрузка по сети. Для это цели можно создать 💼Динамическую переменную, у этой переменной есть свой 🔗Триггер Сборки. Внутри тригера вы делаете все необходимые вычисления, а затем сохраняете значение с помощью реакции ⚡️writeDynamicVariable.
После этого в том месте где вам необходимо получить значение этой переменной, необходимо вызвать реакцию ⚡️readDynamicVariable. Эта реакция выполнит 🔗Триггер Сборки и сохранит значение в кэше. В следующий раз когда вы выполните реакцию ⚡️readDynamicVariable, бот проверит наличие переменной в кеше, а также проверит время кеширования, если время вышло - бот выполнит тригер и вернет новое обновленное значение.
После реакции ⚡️readDynamicVariable значение вашей динамической переменной будет доступно в переменной
${dynamicVar.CodeName}, где CodeName - это код вашей динамической переменной.@QNextBot #reaction