Меняется словарь при пагинации. Что делать?

Код:

import telebot
import config

from telebot import types

from telegram_bot_pagination import InlineKeyboardPaginator

place1_pages = [ 
 {"id": "1", "path": "imagine/4.jpg"},
 {"id": '2', "path": "imagine/16.jpg"},
]

list_pages = [ 
 {"id": '23"', "path": "imagine/6.jpg"},
 {"id": '45', "path": "imagine/11.jpg"}, 
 {"id": '67', "path": "imagine/13.jpg"},
 {"id": '89', "path": "imagine/15.jpg"},
 {"id": '49', "path": "imagine/18.jpg"},
 {"id": '39', "path": "imagine/28.jpg"},
 {"id": '12', "path": "imagine/25.jpg"},
 {"id": '90', "path": "imagine/40.jpg"},
]

bot = telebot.TeleBot(config.TOKEN)
def send_list_page(message, page=0):
 paginator = InlineKeyboardPaginator( 
  len(list_pages),
  current_page=page, 
  data_pattern="page#{page}" 
 ) 
 
 if page != 0: 
  page -= 1 
 
 with open(list_pages[page]["path"], "rb") as file: 
  data = file.read() 
 
 bot.send_photo(message.chat.id, data, caption=list_pages[page]["id"], reply_markup=paginator.markup, parse_mode="Markdown") 

@bot.message_handler(commands=['list'])
def listik(message):
    send_list_page(message)

@bot.callback_query_handler(func=lambda call: True) 
def list_page_callback(call): 
 bot.delete_message( 
  call.message.chat.id, 
  call.message.message_id 
 ) 
 
 page_number = int(call.data.split("#")[1]) 
 send_list_page(call.message, page_number)

def send_place1_page(message, page=0): 
 paginator = InlineKeyboardPaginator( 
  len(place1_pages),
  current_page=page, 
  data_pattern="page#{page}" 
 ) 
 
 if page != 0: 
  page -= 1 
 
 with open(place1_pages[page]["path"], "rb") as file: 
  data = file.read() 
 
 bot.send_photo(message.chat.id, data, caption=place1_pages[page]["id"], reply_markup=paginator.markup, parse_mode="Markdown")

def place1(message):
    send_place1_page(message)
 
@bot.callback_query_handler(func=lambda call: True) 
def places_page_callback(call): 
 bot.delete_message( 
  call.message.chat.id, 
  call.message.message_id 
 ) 
 
 page_number = int(call.data.split("#")[1]) 
 send_place1_page(call.message, page_number)

@bot.message_handler(commands=['start']) 
def start (message):
    send_place1_page(message)

bot.polling()

Человек отсылает команду и ему в ответ приходит картинка, которую можно листать inline кнопками и сменять тем самым на другую. Дело в том, что команда list работает как надо, а команда старт криво - сначала вылезает нужное количество страниц и соответственно нужные фотографии, но при нажатии на кнопку словарь заменяется на словарь для команды start. Как исправить?


Ответы (0 шт):