Как удалить сообщение с анимацией в хэндлере aiogram python
Я разрабатываю бота на aiogram. Схема действия такова: cmd_start -> Приветствие -> нажатие кнопки start -> вывод некоторой информации и удаления сообщения через 10 секунд(сколько времени осталось отмечается на кнопке 'ясно'). Проблема в том, что сообщение удаляется без анимации, а мне она необходима. Также не понятно, как справиться с "залипанием" кнопки start(т.к. функция, которая ловит ее работает все 10 секунд и не завершается). Под "залипанием" я имею ввиду, обводку и подсветку этой кнопки.
handler.py
from aiogram import Router, F
from aiogram.methods.delete_message import DeleteMessage
from aiogram.types import Message, CallbackQuery
from aiogram.filters import CommandStart, Command
from aiogram.filters.state import State, StatesGroup
from aiogram.fsm.context import FSMContext
from asyncio import sleep
from app.keyboards import*
from app.game_manager import*
router = Router()
manager = Manager()
class Form(StatesGroup):
start_game = State()
delete_rules = State()
move = State()
@router.message(CommandStart())
async def cmd_start(message:Message, state:FSMContext):
await message.answer('Привет! Добро пожаловать!', reply_markup=catalog_menu)
await state.clear()
await state.set_state(Form.start_game)
@router.callback_query(F.data == 'start', Form.start_game)
async def cmd_start_game(call:CallbackQuery, state:FSMContext):
hp, num_patrons, idle_patrons, live_patrons = manager.start()
msg = await call.message.answer(f'У тебя будет всего {hp} жизней. Общее количество зарядов - {num_patrons},'+
f' из них холостых {idle_patrons}, боевых {live_patrons}', reply_markup=catalog_rules)
for seconds in range(9, 0, -1):
new_inl_btn_rules = InlineKeyboardButton(text=f'Ясно [{seconds}]', callback_data='delete_rules')
new_catalog_rules = InlineKeyboardMarkup(inline_keyboard=[[new_inl_btn_rules]])
await sleep(1)
await msg.edit_reply_markup(
str(msg.message_id),
reply_markup=new_catalog_rules
)
await msg.chat.delete_message(str(msg.message_id))
await call.message.answer('Дилер заряжает ружье...')
await state.set_state(Form.move)
main
import asyncio
from aiogram import Bot, Dispatcher
from app.handlers import router
async def main():
bot = Bot(token='token')
dp = Dispatcher()
dp.include_router(router)
await dp.start_polling(bot)
if __name__ == '__main__':
print('bot on')
try:
asyncio.run(main())
except KeyboardInterrupt:
print('bot off')
"Залипание кнопки"