Друзья, еще вопрос. В самом Telegraf предусмотрена возможность делать вложенные

меню? Не inline, а обычные под формой отправки сообщений. google упорно подсовывает inline варианты

29 ответов

14 просмотров

Пришлось мозг напрячь, чтоб понят о чем ты, хех. Вряд ли её нет. Это было бы слишком странно

Ksfvvb-Rdvgb Автор вопроса
Артем
Пришлось мозг напрячь, чтоб понят о чем ты, хех. ...

Такое имею в виду. Сама возможность вызвать меню есть, но мне нужно сделать вложенное меню с множеством подпунктов. Пока как вариант вижу делать отдельное меню на каждый уровень вложенности, и отдельно вызывать его через bot.hears

Ksfvvb Rdvgb
screenshot Такое имею в виду. Сама возможность вызвать меню е...

Типа: Нажал на 1 пунк -> клавиатура изменилась ?

Ksfvvb-Rdvgb Автор вопроса
Артем
Типа: Нажал на 1 пунк -> клавиатура изменилась ?

Да Меню -> подменю 1 -> подменю 2 и т.д.

Ksfvvb Rdvgb
Да Меню -> подменю 1 -> подменю 2 и т.д.

Делал просто с помощью вызова новой клавиатуры.

Ksfvvb-Rdvgb Автор вопроса
Артем
Делал просто с помощью вызова новой клавиатуры.

понял, ну видимо так придется. А меню в таком случае не поломается при идентичных названиях кнопок? Например, если на разных уровнях сделать кнопки с одинаковыми именами 1,2,3 т т.п.?

Ksfvvb Rdvgb
понял, ну видимо так придется. А меню в таком случ...

По идее сломается, но в тегеграфе есть сцены (я на другой либе пишу и подобное решение делал сам)

Ksfvvb-Rdvgb Автор вопроса
Артем
По идее сломается, но в тегеграфе есть сцены (я на...

как все сложно. Есть telegram-node-bot, там меню можно накидать через специальную функцию, и уровни вложенности поддерживаются просто путем добавления нового массива в массив с верхним уровнем

Ksfvvb Rdvgb
как все сложно. Есть telegram-node-bot, там меню м...

Чтоз функция? Сам на нем пишу, но делал через генераторы

Ksfvvb-Rdvgb Автор вопроса
Артем
Чтоз функция? Сам на нем пишу, но делал через гене...

runMenu Там менюшка за 2 минуты делается: кнопка-1: { кнопка-1-1: { }, кнопка-1-2: { } }

Ksfvvb-Rdvgb Автор вопроса
Ksfvvb Rdvgb
как все сложно. Есть telegram-node-bot, там меню м...

А зачем тогда телеграф используешь?

Ksfvvb-Rdvgb Автор вопроса
Danil Shaymurzin
А зачем тогда телеграф используешь?

у того есть свои косяки + автор его не поддерживает уже лет 5

Ksfvvb Rdvgb
runMenu Там менюшка за 2 минуты делается: кнопка...

Интересно, будет время, могу библиотеку отдельную сделать

Ksfvvb-Rdvgb Автор вопроса
Ksfvvb-Rdvgb Автор вопроса
Danil Shaymurzin
Скинь доку, чекну как у них работает

https://habr.com/ru/post/276389/ https://github.com/Naltox/telegram-node-bot

Ksfvvb Rdvgb
https://habr.com/ru/post/276389/ https://github.co...

Стоп, это не та либа, кек. Просто называются ужасно похоже

Ksfvvb-Rdvgb Автор вопроса
Артем
Стоп, это не та либа, кек. Просто называются ужасн...

это не либа, это фреймворк. Человек его написал еще когда только в TG появился API для ботов, и больше его не поддерживает

Ksfvvb Rdvgb
это не либа, это фреймворк. Человек его написал ещ...

А в чем разница между фреймворком и библиотекой? Как по мне всё что не создает вокруг себя отдельной периферии — библиотека

Ksfvvb-Rdvgb Автор вопроса
Артем
А в чем разница между фреймворком и библиотекой? К...

Я имел в виду, что к тому же telegraf ты его не прикрутишь, это бибилиотека со своей логикой

Ksfvvb Rdvgb
Я имел в виду, что к тому же telegraf ты его не пр...

Было бы желание, на самом деле. Но, как я и говорил, реализовать подобное можно с помощью сцен. Если хочешь более ванильное решение — могу скинуть

Ksfvvb-Rdvgb Автор вопроса
Артем
Было бы желание, на самом деле. Но, как я и говори...

я пока осваиваюсь, почитаю что такое сцены

Ksfvvb-Rdvgb Автор вопроса
Артем
Было бы желание, на самом деле. Но, как я и говори...

если есть ванильный вариант, скинь пожалуйста, не будет лишним изучить

Ksfvvb Rdvgb
если есть ванильный вариант, скинь пожалуйста, не ...

Тебе нужны 2 вещи: генератор и сама функция, которая будет всё обрабатывать. function* generator_callback_data() { yield (f)=>{ console.log('Started generator'); } ................................... yield (f)=>{ console.log('end') } } Это генератор, где на каждый шаг вызывается своя функция. Получается при вызове первой команды, ты блокируешь основной блок обработки сообщений и начинаешь сообщения передавать в генератор, как: let it = generator_callback_data() if(falg){ let k = it.next().value if(k == undefined){ flag = false }else{ k(msg) } } Сами обработки нужно поместить в генератор, где F — то что ты передаешь в обрботчике. Когда шаги закончатся, то в k вернется undefined. Можно это сделать иначе, и перенести в сам генератор, не суть важно. Всё что дает такое решение — упорядоченное выполнение, без необходимости делать кучу проверок. Из самого генератора можно будет выйти в любой момент, очистив флаг. (И важно заново присвоить генератор)

Артем
Тебе нужны 2 вещи: генератор и сама функция, котор...

@md_3t вот тут писал. А вообще попробуй загуглить

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта