Как сделать анимацию загрузки edit_text aiogram?

надо создать код под айограм используя модуль time , неоходимо сделать анимацию загрузки в виде процентов от 0-100% примерный код который смог придумать приклеплен снизу , помогите решить эту проблему , вся основная задача заключается в edit_text тоесть бот должен редактировать сообщения каждый раз меняя его от 0% до 100% таким образом и выходит анимация , я сам попытался сделать через модуль time

Код

import time

pisos = 0
ids = ""
for i in range(2,101):
  time.sleep(0.8)
  if pisos == 100:
    break
  else:
    pisos += 1
    ids += str(message.message_id)
  await bot.message.edit_text(message.chat.id, message.message_id=ids, f'Перезагрузка бота : {pisos}%')

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

Автор решения: MyZik

Очень просто:

Для шага в 10 (10, 20, 30, ..., 100):

@dp.callback_query_handler(text="animation")
async def animation_handler(query: CallbackQuery):
    for i in range(110):
        await query.message.edit_text(text=f"{i}%")
        await asyncio.sleep(0.2)

Для шага в 1 (1, 2, 3, ..., 100):

@dp.callback_query_handler(text="animation")
async def animation_handler(query: CallbackQuery):
    for i in range(101):
        await query.message.edit_text(text=f"{i}%")
        await asyncio.sleep(0.2)

Если хотите, чтобы бот реагировал на конкретный текст:

import asyncio
from aiogram.dispatcher.filters import Text

...

@dp.message_handler(Text(equals="Загрузка", ignore_case=True))
async def animation_handler(message: Message):
    upload_message = await bot.send_message(chat_id=message.chat.id, text="Начинаем загрузку...")
    await asyncio.sleep(1)
    for i in range(101):
        await upload_message.edit_text(text=f"{i}%")
        await asyncio.sleep(0.2)
→ Ссылка