@Loknut

Почему не работает код на листание страниц?

Библиотеки: pyTelegramBotAPI, python-telegram-bot-paginator.
Словарь:
place1_pages = [
    {
        'name':'\N{Potted Plant} 90',
        'image':'imagine/41.jpg',
    },
    {
        'name':'1',
        'image':'imagine/1.jpg',
    },
    {
        'name':'2',
        'image':'imagine/2.jpg',
    },
    {
        'name':'3',
        'image':'imagine/3.jpg',
    },
    {
        'name':'4',
        'image':'imagine/4.jpg',
    },
]

Код:
import telebot

from telebot import types

from telegram_bot_pagination import InlineKeyboardPaginator
from data import place1_pages

bot = telebot.TeleBot('х')

@bot.message_handler(commands=['start'])  
def welcome(message):
    sti = open('imagine/sticker.webp', 'rb')
    bot.send_sticker(message.chat.id, sti)

    #КЛАВИАТУРА 1
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard =True)
    item = types.KeyboardButton("\N{world map}")

    markup.add(item)

    bot.send_message(message.chat.id, "Йоу!".format(message.from_user,bot.get_me()),
                     parse_mode='html', reply_markup=markup)

@bot.message_handler(func=lambda message: True)
def get_place1(message):
    send_place1_page(message)


@bot.callback_query_handler(func=lambda call: call.data.split('#')[0]=='place1')
def places1_page_callback(call):
    page = int(call.data.split('#')[1])
    bot.delete_message(
        call.message.chat.id,
        call.message.message_id
    )
    send_place1_page(call.message, page)


def send_place1_page(message, page=1):
    places_data = place1_pages[page-1]
    
    paginator = InlineKeyboardPaginator(
        len(place1_pages),
        current_page=page,
        data_pattern='place#{page}'
    )

    bot.send_photo(
        message.chat.id,
        open(places_data.get('image'), 'rb'), caption =places_data.get('name'),
        reply_markup=paginator.markup,
        parse_mode='Markdown'
    )


# GOOOO
bot.polling(none_stop=True)

Бот берет значения из словаря - картинки и приложенный к ним текст - и отправляет пользователю. Эти картинки можно листать на инлайновых кнопках снизу (впрочем, вторая библиотека для того и создана). При запуске бот выводит только первую фотографию и приложенный к ней текст, а по нажатии на онлайновую кнопку для пролистывания - ничего не происходит. В чем ошибка?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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