Меняется словарь при пагинации. Что делать?
Код:
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. Как исправить?