Кто-То может объяснить, как из такой конструкции сформировать кнопки? Через

контекст передаётся подключение к монге, и внутри сцены ищутся все документы коллекции, чтобы собрать из нескольких полей название и колбек для кнопок. Нужно чтобы при перезаходе в сцену, данные из БД обновлялись.
Или другой какой-то путь есть?

14 ответов

12 просмотров

ну, проходишься по полученным чатам, для каждого добавляешь свою кнопку, потом отправляешь сообщение с клавиатурой

Den- Автор вопроса
Kirill Loskutov 🍏
ну, проходишься по полученным чатам, для каждого д...

то что прохожу - это понятно. но я же не могу сделать push в массив вне функции типа такого. вообще не понимаю как в кучу собрать данные

Den
то что прохожу - это понятно. но я же не могу сдел...

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

Den- Автор вопроса
Kirill Loskutov 🍏
а зачем вне? когда нужны данные, тогда дергаешь ба...

ну вот я и не могу понять как это сделать, если результатом этого дёрганья является такой цикл. внутрь forEach я ведь не могу запихнуть чёто типа callbackButton(chat.name, chat.id) я знаю как сделать клавиатуру из массива или объекта, а так - хз. тут больше вопрос не к телеграфу, видимо, а к js и/или монге.

Den
ну вот я и не могу понять как это сделать, если ре...

let keyboard = [] chats.forEach((chat) => { keyboard.push([{text: chat.name, callback_data: chat.id}]) })

Den- Автор вопроса
Kirill Loskutov 🍏
let keyboard = [] chats.forEach((chat) => { key...

как говорится, то ли лыжи не едут, то ли я ебанутый

Den
screenshot как говорится, то ли лыжи не едут, то ли я ебануты...

Это всё потому что функции с большой буквы называешь

Den- Автор вопроса
Илья musk
Где await файнда

хех, пробовал, конечно, но так, оказывается, не работает: let chats = await ctx.CHATS.find(); — зато так работает: await chats.forEach((chat) => { arr.push({id: chat._id, active: chat.active}) }); Спасибо!

Den- Автор вопроса
pacificseascape 🇪🇪
А где async

Спасибо! Не туда ставил

Den
то что прохожу - это понятно. но я же не могу сдел...

Здесь async await забыл и можно без forEach, через map, и еще думаю при такой callback_data архитектуре дальше будут проблемы import { Markup as m } from "telegraf"; ... async function ... const chats = await ctx.CHATS.find(); const btns = chats.map(c => m.callbackButton(c.name, c.id)); const keyboard = m.inlineKeyboard(btns); ... return ctx.reply('...', keyboard.extra());

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
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
Карта сайта