horoscope
— Ссылка: https://horoscopes.rambler.ru/api/front/v1/horoscope/today/${localVar.zodiac}/
— Тип: get
— Ответ: json
Content-Type
— application/json
horoscope
— horoscope
— 8 часов.${localVar.zodiac}
httpRequest
— horoscope
dynamicVarSet
— ${httpResponse.value}
/zodiac (.+)/i
Добавить следующие реакции:localVarSet
— znak
= !{string|
path: exec.1;
type: toLowerCase;
}
localVarSet
— zodiac
= !{switch|
type: string;
path: localVar.znak;
defaultValue: aries;
case: овен; value: aries;
case: телец; value: taurus;
case: близнецы; value: gemini;
case: рак; value: cancer;
case: лев; value: leo;
case: дева; value: virgo;
case: весы; value: libra;
case: скорпион; value: scorpio;
case: стрелец; value: sagittarius;
case: козерог; value: capricorn;
case: водолей; value: aquarius;
case: рыбы; value: pisces;
}
⚡️ loadDynamicVar
— horoscope
⚡️ sendMessage:
Знак: ${dynamicVar.horoscope.sign.name} (${dynamicVar.horoscope.sign.slug})
Гороскоп:
${dynamicVar.horoscope.text}
https://horoscopes.rambler.ru/api/front/v1/horoscope/today/
+elementshttps://horoscopes.rambler.ru/api/front/v1/horoscope/today/
http://api.forismatic.com/api/1.0/?method=getQuote&lang=ru&format=json&json=?
horoscope
— Ссылка: https://horoscopes.rambler.ru/api/front/v1/horoscope/today/
— Тип: get
— Ответ: json
Content-Type
— application/json
/request
Добавить реакции:httpRequest
— horoscope
sendMessage
:${httpResponse.value.text}
———————————————— horoscope
— Ссылка: https://horoscopes.rambler.ru/api/front/v1/horoscope/today/
+elements — Тип: get
— Ответ: json
aries
/ taurus
/ cancer
/ leo
/ virgo
/ libra
/ scorpio
/ sagittarius
/ capricorn
/ aquarius
/ pisces
Параметры — headers — Создать:Content-Type
— application/json
/request
Добавить реакции:httpRequest
— horoscope
sendMessage
:${httpResponse.value.sign.name}
Гороскоп: ${httpResponse.value.text}
randAnswer
— тип профиля: объект Обновить
— пропустить localVarSet
— Тип: Число — Название: minNum
— Значение: 1
⚡️localVarSet
— Тип: Число — Название: maxNum
— Значение: 11
⚡️localVarSet
— Тип: Число — Название: quanNum
— Значение: 10
⚡️
runScript
— function getRND(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
var minNum = qnext.getValue("localVar.minNum", 0);
var maxNum = qnext.getValue("localVar.maxNum", 0);
var quanNum = qnext.getValue("localVar.quanNum", 0);
var numRes = [];
if ((maxNum - minNum) >= quanNum) {
while (numRes.length < quanNum) {
var rndNum = getRND(minNum, maxNum);
var found = false;
for (var i = 0; i < numRes.length; i++) {
if (numRes[i] === rndNum){
found = true;
break;
}
}
if (!found) { numRes[numRes.length]=rndNum; }
}
} else {
numRes[0] = -1;
}
exports.numRes = numRes;
⚡️profileSet
— пользователи — randAnswer
— ${localVar.numRes}
sendMessage
— Текст: Порядок обновлен
———————————————— Выбор ответа из списка для выдачи, и удаление использованного ответа из списка⚡️
groupReactions
— Обработка списка
localVarSet
— список — list
= !{profile| name: randAnswer; }
for
— ${localVar.list}
localVarAdd
— список — list
= ${forItem.value}
${forItem.first}
localVarAdd
— число — answer
= ${forItem.value}
${forItem.first}
profileSet
— пользователи — randAnswer
— ${localVar.list}
sendMessage
— Текст: Больше цифр нет :(
sendMessage
— Текст: Ответ один
🚧Ограничения — number — ${localVar.answer}
= 1
⚡️ sendMessage
— Текст: Ответ два
🚧Ограничения — number — ${localVar.answer}
= 2
sendMessage
— Текст: Ответ три
🚧Ограничения — number — ${localVar.answer}
= 3
takeChat
— ранее созданный нами чатformResult
— текст:❗️Новая анкета:
Автор: !{user}
Текст:
${formResult.fieldsText}
deleteMessage
⚡️ takeAuthorUser
— ⚡️ sendMessage
:Модератор ${user.name} принял вашу заявку
⚡️ takeChat
— ранее созданный нами чатformResult
— текст:✅ Анкета одобрена администратором !{user}
Текст:
${formResult.fieldsText}
deleteMessage
⚡️ takeAuthorUser
— ⚡️ sendMessage
:Модератор ${user.name} отклонил вашу заявку
⚡️ takeChat
— ранее созданный нами чатformResult
— текст:🚫 Анкета отклонена администратором !{user}
Текст:
${formResult.fieldsText}
msgid
— тип профиля: число CapchaCheck
— Параметр: Пропустить localVarSet
— Строка — Название: key
— Значение: [кодовое слово
]
⚡️groupReactions
— actions
🚧Ограничения — ➕Добавить условие — string — ${localVar.key}
= ${update.message.text}
☑️if-mode — 🔘✅takeChat
— ${chat.id}
— — ⚡️localVarSet
— Число — Название: msgid
— Значение: ${reactionResult.response.message_id}
— — ⚡️deleteMessage
— ID сообщения — ${localVar.msgid}
deleteMessage
— ID сообщения — ${update.message.message_id}
— —⚡️restrictChatMember
— ➖Пропустить — отметить ☑️ разрешения которые выдать участнику takeUsers
— ${user.id}
— — ⚡️userActionStop
— capcha
bindTrigger
— ❌ — CapchaCheck
sendMessage
— Текст: ${user.name} добро пожаловать
☑️if-mode — 🔘🚫 deleteMessage
— ID сообщения — ${update.message.message_id}
☑️Ответить в чате10 00
— Название: capcha
capcha
— ⚡️ реакции: takeChat
— ${chat.id}
banChatMember
— ⚡️deleteMessage
— ID сообщения — ${localVar.msgid}
groupReactions
— joinNewUser
🚧Ограничения — ➕Добавить условие — regex — рег. выражение: (left|kicked)
— значение: ✅ — путь: ${update.chat_member.old_chat_member.status}
(member)
— значение: ✅ — путь: ${update.chat_member.new_chat_member.status}
bindTrigger
— ✅ — CapchaCheck
— ⚡️restrictChatMember
— Пропустить — отметить ☑️ "Разрешить отправлять сообщения"sendMessage
— Текст: Ваше приветствие
+ [кодовое слово
] localVarSet
— Число — Название: msgid
— Значение: ${reactionResult.response.message_id}
— ⚡️takeUsers
— ${user.id}
profileAdd
— Пользователи — msgid
— ${localVar.msgid}
— — ⚡️userActionStart
— capcha
takeChat
— Пропустить ⏩🚧
Ограничения — ➕
Добавить условие: inGroup — Значение: ✅ and string — Путь до значения: ${update.message.from.username}
— Значение: = — Строка с чем сравнивать: Channel_Bot
— ⚡️deleteMessage
— ⚡️banChatSenderChat
#ограничение #groupcustomTitle
— тип профиля: Строка voteProfile
— Параметр: Пропустить ⚡️ groupReactions
— actions
🚧
Ограничения — ➕
Добавить условие — bool
— Путь: ${update.message.text}
— Значение: ✅⚡️
profileSet
— Пользователи — customTitle
— ${update.message.text}
— ⚡️
voteAdd
— voteProfile
— ⚡️
refreshContent
— Выбрать контент: voteProfile
— ⚡️
DeleteMessage
— ⚡️
bindTrigger
— ❌ ⚡️
alert
— Текст: Введите текстvoteProfile
— Файл: пропустить — Текст: Статичный текст
!{vote| type: users;
userPrefix: ✔️;
userView: name;
userLink: default;
profileId: 0000;
userTemplate: $user -> $profile;
splitterUser: \n;
}
Добавить текст
loadVote
— voteProfile
groupReactions
- voteCancel 🚧
Ограничения — ➕
Добавить условие — number — Путь до значения: ${vote.result}
= 4⚡️voteCancel
⚡️ groupReactions - voteAdd🚧
Ограничения — ➕
Добавить условие — number — Путь до значения: ${vote.result}
= 0bindTrigger
— ✅ — ОТ — voteProfile
runTrigger
— voteProfile
Требуется помощь?CT
— тип профиля: Строка editText
— Параметр: Пропустить ⚡️ groupReactions
— actions
🚧
Ограничения — ➕
Добавить условие — bool
— Путь: ${update.message.text}
— Значение: ✅⚡️
takeUsers
(юзернейм вашего бота, прим: @Qnext_Examplebot)⚡️
profileAdd
— Пользователи - CT — ${update.message.text}!{html| type: br; }
⚡️localVarSet
— Строка — Название: text
— Значение: !{profile| name: CT; }
⚡️
refreshContent
— Выбрать контент: myContent
— ⚡️
bindTrigger
— ❌ ⚡️
alert
— Текст: Введите текст
📋Контент — ➕Создать📋 — 🆕Новый — Тех. название: myContent
— Файл: пропустить — Текст: ${localVar.text|notFound: none; }
⚡️
Реакции:⚡️
takeUsers
(юзернейм вашего бота, прим: @Qnext_Examplebot)⚡️localVarSet
— Строка — Название: text
— Значение: !{profile| name: CT; }
Добавить текст
bindTrigger
— ✅ — ОТ — editText
runTrigger
— editText
Требуется помощь?/purge
отправленной в ответ на любое сообщение в чате, удалить все сообщение которые находятся между этими сообщениями включая и эти сообщения.↙️
Команды — ➕Создать↙️ — Команда: /purge
⚙️
Настройки — ☑️Доступно в чате⚡️ groupReactions
— isReplyMsg
🚧
Ограничения — ➕
Добавить условие — isReplyMessage
— Значение: ✅localVarSet
— Тип: Любой объект — Название: idMsg
— Значение: {🔘json — ☑️Собрать объект
"begin": ${update.message.message_id},
"end": ${update.message.reply_to_message.message_id}
}
runScript
— Текст скрипта:var idMsg = qnext.getValue('localVar.idMsg');—⚡️
idMsg.end = (idMsg.begin - idMsg.end > 200) ? idMsg.begin - 199 : idMsg.end;
idMsg.list = [];
for (let i = idMsg.begin; i >= idMsg.end; i--) {
idMsg.count = idMsg.list.push(i);
}
exports.idMsg = idMsg;
for
— Название параметра: ${localVar.idMsg.list}
— —⚡️ deleteMessage
— Id сообщения: ${forItem.value}
— ☑️Ответить в чатеdeleteMessage
— ☑️Ответить в чатеdynamicMenu
— Текст: !{attachment| path: localVar.file; }➕Добавить кнопку — Тип:
${localVar.text|notFound: made by QNext; }
url
— Название: ${localVar.name
|notFound: QNext;}
— Ссылка: ${localVar.url
|notFound: qnext.app;}
↙️Команды — ➕Добавить↙️ — Текст: /menu ([^,]+), ([^,]+), ([^,]+)$/🔗Триггер — ⚡️Реакции — ➕Добавить:
localVarSet
— Тип: Строка — Название: text
— Значение: ${exec.1}
⚡️ localVarSet
— Тип: Строка — Название: name
— Значение: ${exec.2}
⚡️ localVarSet
— Тип: Строка — Название: url
— Значение: ${exec.3}
⚡️ groupReactios
- file
bool
— путь до значения: ${update.message.photo}
— Значение: ✅localVarSet
— Тип: Строка — Название: file.fileId
— Значение: ${update.message.photo.0.file_id}
localVarSet
— Тип: Строка — Название: file.type
— Значение: photo
sendMenu
— dynamicMenu
Требуется помощь?/^\/request\s(.+)$/i
🔗Триггер — ⚡️Реакции — ➕Добавить:groupReactions
— actions
— ⚡️ localVarSet
— Тип: Строка — Название: action.custom
— Значение: любой кастомный текст
— ☑️ Собрать объектlocalVarSet
— Тип: Строка — Название: action.text
— Значение: ${exec.1}
— ☑️ Собрать объектlocalVarSet
— Тип: Число — Название: action.user
— Значение: ${user.id}
— ☑️ Собрать объект httpRequest
— Выбрать HTTP-запрос: Запрос в бота 2
body
— Значение: ${localVar.action}
takeUsers
— ${request.body.body.user}
— ⚡️ sendMessage
— Текст: ${request.body.body.user}#web #webhook
${request.body.body.custom}
${request.body.body.text}
!{user} вы подали заявку на вступление в чат ${update.chat_join_request.chat.title}. Для подтверждения вступления, нажмите на кнопку ниже.
${update.chat_join_request.chat.id}
— ☑️🔄${update.chat_join_request.from.id}
— ☑️🔄takeChat
— ${buttonsVar.v1}
— ⚡️ localVarSet
— Тип: Строка — Название: chatTitle
— Значение: ${targetChat.title}
sendMessage
— Текст: !{user} вступил в чат
⚡️ approveChatJoinRequest
— Чаты: ${buttonsVar.v1}
— Пользователь: ${buttonsVar.v2}
⚡️ sendMessage
— Текст: !{user} Добро пожаловать в чат ${localVar.chatTitle}
👥Чаты/Каналы — Выбираем нужный чат — копируем ID (пример: -1001153029287)⚡️ groupReactions
— actions
🚧
Ограничения — ➕Добавить условие
— bool
— Путь до значения: ${update.chat_join_request.invite_link}
— Значение: ✅number
— Путь до значения: chat.id
— Значение: = — ID вашего чатаtakeUsers
— ${update.chat_join_request.from.id}
sendMenu
— Капча
Требуется помощь?⚡️localVarSet
— Тип: Число — Название: rand — Значение: !{random|
type: number;
min: 1;
max: 3;
}
⚡️sendMessage
— Текст: !{switch|Подробнее о макросе random можно прочитать тут:
type: number;
path: localVar.rand;
defaultValue: Не известно;
case: 1; value: Одно очко;
case: 2; value: Два очка;
case: 3; value: Три очка;
}
↙️ — Регулярное выражение: /^@admin$/i
(Установить: ⚙️Настройки — ☑️ Доступно в чате)⚡️ takeChat
— ➖ Пропустить — ⚡️takeChatAdmins
— ➖ Пропустить ⚡️localVarAdd
— Тип: Список — Название: userList
— Значение: !{user| type: link; path: targetUser; encode; }
🚧
Ограничения — ➕Добавить условие — bool — Укажите путь до значения: ${targetUser.isBot}
— Значение: 🚫— ⚡️sendMessage — Текст: ${localVar.userList|notFound: text;}
— Файл: ➖ПропуститьPoints
и ранее установленными значениями./^(!|/)(top|топ)$/i
(Установить: ⚙️Настройки — ☑️ Доступно в чате)takeChat
— ➖ Пропустить findProfileValue
— 👤Пользователи — 🎒Points — Значение: >= — Выражение для записи параметра: 1for
— Название параметра: ${findValues}
— — ⚡️takeUsers
— Пользователь: ${forItem.value.userId}
— — — ⚡️localVarAdd
— Тип: Список — Название: rating
— Значение: !{html| type: br;}${forItem.num}. ${targetUser.name|encode;} — ${forItem.value.value} 📊
— ⚡️sendMessage
— Текст: ${localVar.rating|notFound: text;}
— Файл: ➖Пропуститьsort.qantStr
Например: В группе, по команде: !ratings
создать и опубликовать список пользователей, у которых профиль пользователя rating
больше нуля.rating
и ранее установленными значениями.sortList
— Ссылка: https://qnext.app/bin/webhooks/3428/334/AqPMFyFmMr9IqyLD
— Тип: post — Формат ответа: jsonsort
— Значение параметра: ${localVar.sort}
🔧Параметры — headers — ➕Создать — Ключ параметра: Content-Type
— Значение параметра: application/json
↙️Команды — ➕Создать↙️ — Регулярное выражение: /!ratings/i
(Установить: ⚙️Настройки — ☑️ Доступно в чате)localVarSet
— Тип: Число — Название: sort.qantStr
— Значение: 10
— ☑️ Собрать объектlocalVarSet
— Тип: Любой объект — Название: sort.bot
— Значение: {
"creatorId": ${bot.creatorId},
"ownerId": ${bot.ownerId},
"userId": ${bot.userId},
"username": "${bot.username}"
}
— 🔘 json — ☑️ Собрать объектtakeUserList
— Выберите список пользователей: 👥Укажите свой списокlocalVarAdd
— Тип: Список — Название: sort.listName
— Значение: ${targetUser.name}
— ☑️
Собрать объектlocalVarAdd
— Тип: Список — Название: sort.listNum
— Значение: !{profile| name: rating; sourceType: user; path: targetUser; defaultValue: 0}
— ☑️
Собрать объект⚡️httpRequest
— Выберите http-запрос: sortListsendMessage
— Текст: Рейтинг участников: ${httpResponse.value.sortStr}
— Файл: ➖Пропуститьrandom
— Код переменной: text
— Значение: текст1
текст2
текст3
↙️
Команды — ➕Создать↙️ — Команда: /random
В 🔗Триггер команды добавить следующие реакции:loadGlobalVariable
⚡️runScript
— Текст скрипта:function getRandomNum(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
var globVar = qnext.getValue('globalVar.text','');
var array = globVar.split(qnext.constants.NewLine);
var text = getRandomNum(0, array.length);
exports.word = array[text];
⚡️ sendMessage
— Текст:${localVar.word}
— Файл: ➖Пропустить↙️
Команды — ➕Создать↙️ — Команда: /statistics
🚧
Ограничения — ➕Добавить условие — isAdmin — Выберите значение: ✅sendMessage
— Текст:📊Статистика
Всего пользователей: !{usersCount| type: all;}
Пользователь запустил бота в привате: !{usersCount| type: all; status: started;}
Пользователь заблокировал бота: !{usersCount| type: all; status: blocked;}
Аккаунт пользователя удален Телеграмом: !{usersCount| type: all; status: deleted;}
— Файл: ➖Пропустить