Вот тебе два решения, для aiogram 2x и 3x
aiogram 2x
from aiogram import types
from aiogram.dispatcher.middlewares import BaseMiddleware
class CallbackDataMiddleware(BaseMiddleware):
async def on_pre_process_callback_query(self, callback_query: types.CallbackQuery, data: dict):
# Здесь можно получить callback_data
callback_data = callback_query.data
# Добавляем callback_data в data, чтобы оно было доступно в хендлере
data['callback_data'] = callback_data
print(f"Callback Data: {callback_data}")
aiogram 3x
from aiogram import BaseMiddleware
from aiogram.types import CallbackQuery
class CallbackDataMiddleware(BaseMiddleware):
async def __call__(self, handler, event: CallbackQuery, data: dict):
# Здесь мы можем извлечь callback_data
callback_data = event.data
data['callback_data'] = callback_data
print(f"Callback Data: {callback_data}")
return await handler(event, data)