Я не назову свое решение правильным, но оно работает.
И так для того чтобы была возможность редактировать сообщения через определённый тайминг, а сам бот при этом не уходил в спячку нужно эти действия делать в отдельном потоке. Суть этого способа в том чтобы процесс ожидания отправлять в отдельный поток, и в рамках этого потока ждем указанное вами время, а потом шлем запрос на сервера телеграмма для редактирования сообщения.
Нам понадобиться библиотеки: threading, requests. Первая для многопотока, а вторая для отправки запросов на сервера телеграмма.
# Импорт библиотек
import time
from threading import Thread
# Это функция отправляет запрос на редактирования сообщения напрямую через сервера телеграмма
# message - обьект сообщения
# delay - задержкка
# text - новый текст
def edit_message(message, delay, text):
time.sleep(delay)
api_url = "https://api.telegram.org/bot" + TOKEN
method = "/editMessageText"
chat_id = message.chat.id
message_id = message.message_id
r = requests.post(api_url + method, data={'chat_id': chat_id, 'message_id': message_id, 'text': text})
. . .
. . .
. . .
@dp.message_handler(content_types=['text'])
async def process_text(message: types.Message):
# Добавляем функцию в отдельный поток
# args - аргументы функции
th = Thread(target=edit_message, args=(message, 5, "Cообщение изменено", ))
th.start()
Надеюсь я понятно все изложил, если будут вопросы пишите..