Задать вопрос
@artgin

Как мне отправить продолжение сообщения, которое не влезло вторым сообщением?

Я полный 0 в программировании, нужно доделать бота, которого понемногу собираю из гугла...
Бота пишу на aiogram...
Вопрос:
Имеется список, его вывожу в инлайн-кнопки, но у тг имеются ограничения в 100 кнопок...
Иногда список может содержать более 100 строк, была идея сделать пагинацию из инлайн-кнопок, но это оказалось тяжело, полному нулю в питоне этого не сделать, сейчас же хочу сделать следующее:
Как осуществить, чтобы бот отправлял в первом сообщение 100 кнопок, и следом в следующем сообщение остальные строки, т.е. 101, 102 и т.д.
  • Вопрос задан
  • 53 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Timtaran
@Timtaran
Начинающий программист.
Написал простенький говнокод, но рабочий
text=['sus', 'sus3', 'sus5'] #Список
result=[] #Итоговый, разделенный список
limit=2 #Сколько пунктов может быть в одном списке
i=1
p=[]
for texts in text:
	if i==limit:
		p.append(texts)
		result.append(p)
		p=[]
		i=1
	else:
		p.append(texts)
	i+=1

Для разделения на сообщение используй for тут_название_переменной in result:
Ответ написан
Комментировать
@CreeHk
твой код вообще не понял поэтому что-то может отличатся

from aiogram.types import InlineKeyboardMarkup
from aiogram.types import InlineKeyboardButton

buttons = ['кнопка1', 'кнопка2', 'кнопка3'] # список который выводится в inline-кнопки
limit=2 # сколько кнопок должно быть в одном сообщении (тебе нужно 100)
added_buttons = 0
for button in buttons:
    if added_buttons < limit
        kb1 = InlineKeyboardMarkup()
        kb1.add(InlineKeyboardButton(button, callback_data=button))
        added_buttons = added_buttons + 1
    elif added_button == limit:
        kb2 = InlineKeyboardMarkup()
        kb2.add(InlineKeyboardButton(button, callback_data=button))
        added_buttons = added_buttons + 1
    else:
        kb2.add(InlineKeyboardButton(button, callback_data=button))
        added_buttons = added_buttons + 1

# вот два inline-клавиатуры (kb1, kb2), где limit ставишь 100

# теперь отправим сообщения с этими кнопками
if added_buttons <= 2
    bot.send_message(message.from_user.id, "текст", reply_markup=kb1)
else:
    bot.send_message(message.from_user.id, "текст", reply_markup=kb1)
    bot.send_message(message.from_user.id, "текст2", reply_markup=kb2)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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