Проблема с передачей данных в многоуровневом меню Aiogram
Есть телеграмм бот с СУБД SQLite написанный на Aiogram. Есть функция get_character() которая принимает от пользователя имя персонажа и возвращает список с текстом сообщений для разных категорий. По задумке, через Inline-кнопки пользователь может переходить в разные категории. Собирался отслеживать это через callback_handler но столкнулся с проблемой. Список я получаю в хендлере команды и не могу передать его значения в другие функции. Вот сам хендлер:
from aiogram import types
import aiogram.utils.markdown as mark
from loader import dp
from utils.database import get_character
from keyboards.inline import guide_ikb
@dp.message_handler(commands=["guide"])
async def guide_command(msg: types.Message):
guide = await get_character(msg.get_args().strip().title()) #Наш список
if guide is False:
await msg.answer(text='К сожалению, гайд на этого персонажа ещё не готов, но он скоро появится!')
elif type(guide) is str:
await msg.answer(text=guide)
else:
main_menu_msg = guide[0]
main_menu_photo = guide[1]
await msg.answer(text=f'{main_menu_msg} {mark.hide_link(main_menu_photo)}', reply_markup=guide_ikb)
guide - это и есть наш полученный список, и мне бы хотелось передавать его значения в другие хендлеры. Например вот в этот, когда пользователь нажимает на кнопку "Оружие"
@dp.callback_query_handler(text='weapons_menu')
async def guide_weapons_menu_set(call: types.CallbackQuery):
weapons_menu_msg = guide[2]
weapons_menu_photo = guide[3]
await call.message.edit_text(text=f'{weapons_menu_msg} {mark.
reply_markup=guide_weapons_ikb)
Я только изучаю aiogram и у меня нет идей как бы это лучше реализовать. Не хочется каждый раз проверять по 60 строк в БД при смене категорий