Как реализовать удаление сообщений через определенное время? Aiogram
Хочу реализовать удаление сообщения через n секунд в боте на aiogram.
Как это можно сделать?
Я знаю про то что есть метод в asyncio - asyncio.sleep(1).
Но есть ли другие методы?
Например чтобы после выдачи результата, после ввода команды через какое-то время удалялся результат, чтобы не засорять чат.
@dp.message_handler(commands='test')
async def test (message: types.Message):
await bot.send_message(message.chat.id, 'Test') #и например что то по типу delete_message=10
Ответы (1 шт):
Автор решения: oleksandrigo
→ Ссылка
Из немного костыльного, могу предложить вот такой.
import asyncio
@dp.message_handler(commands='test')
async def test(message: types.Message):
new_msg = await message.answer('Test')
# делайем слип (асинхронно)
await asyncio.sleep(5)
# на всякий случай проверяем есть ли еще сообщение
try:
await new_msg.delete()
except Exception as e:
pass
Ибо внутреннего способа я не знаю.