Проблема с передачей данных в многоуровневом меню 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 строк в БД при смене категорий


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