from aiogram import Bot, Dispatcher, html, F, flags, BaseMiddleware, Router
from aiogram.fsm.state import StatesGroup, State
from aiogram.enums import ParseMode, ChatAction
from aiogram.filters import CommandStart, Command
from aiogram.fsm.context import FSMContext
from aiogram.types import Message, CallbackQuery, FSInputFile, TelegramObject, File, Sticker, Document
from aiogram.utils.chat_action import ChatActionMiddleware
from aiogram.utils.keyboard import InlineKeyboardBuilder, InlineKeyboardButton, InlineKeyboardMarkup
from asyncio import Lock, sleep
class TextState(StatesGroup):
answer = State()
message_id = State()
@router.message(F.photo)
async def photo_handle(message: Message, state: FSMContext):
await hadnle_text(message, state)
async def hadnle_text(message: Message, state: FSMContext):
await state.set_state(TextState.answer)
await state.update_data(
message_id=message
)
builder = InlineKeyboardBuilder()
builder.add(InlineKeyboardButton(
text="Answer 1",
callback_data="Answer 1"),
InlineKeyboardButton(
text="Answer 2",
callback_data="Answer 2"),
)
await message.answer(
f"<b>Выберите кнопку</b>",
reply_markup=builder.as_markup()
)
@router.callback_query(TextState.answer)
async def text_state_callback(callback: CallbackQuery, state: FSMContext):
await state.update_data(answer=callback.data)
data = await state.get_data()
await data["message_id"].reply(data["answer"])
# await state.clear()
Бот присылает сообщение
hadnle_text (два раза, если два фото и тд) с двумя кнопками, и в зависимости от выбора должен отвечать фото в присланном юзером сообщении. При выборе кнопки в первом сообщении,
я хочу, чтобы оно отвечало на первое фото, кнопка из второго сообщения на второе и так далее.
Проблема: бот только отвечает на последнее фото при выборе кнопки из любого сообщения. Как решить эту проблему?