Пишу бота на aiogram 2.x. Бот предназначен для личного общения с пользователем. Как можно сделать общий timeout на всего бота (сейчас действия разделены по State()), чтобы при бездействии пользователя, бот говорил пока и сбрасывал состояние?
Пример: После старта, пользователю отправляется Привет, и переходит в State1. Бот ждет ответа от пользователя в answer. Как сделать timeout этого answer, то есть например через 60 секунд не ждать ответа?
class MyState(StatesGroup):
state1 = State()
@dp.message_handler(commands=['start'])
async def process_start_command(message: Message, state: FSMContext):
await bot.send_message( # отправка пользователю Привет
message.chat.id,
'Привет',
)
await state.set_state(MyState.state1.state) # переход в state state1
@dp.message_handler(state=MyState.state1, content_types=ContentTypes.TEXT) # timeout действия пользователя
async def answer(message: Message, state: FSMContext):
await bot.send_message(
message.chat.id,
message.text,
)