Отправление сообщения каждый день aiogram
Увидел прикольную фишку: присылать пользователю сообщение каждый день. Пытался реализовать через библиотеку schedule (вроде для синхронных функции) и apscheduler (вроде для async), но запустить цикл бесконечной проверки не получается. Пробовал открывать второй поток и там делать проверку, но в бестолку.
Ответы (1 шт):
Автор решения: Paladin4ick
→ Ссылка
Приветик. Тут на самом деле всё просто. Если использовать aiogram 3.5x
то можно сделать так:
import asyncio
import aiogram
from aiogram import Dispatcher
bot = aiogram.Bot(token=config.BOT_TOKEN)
dispatcher = Dispatcher()
async def send_mes():
await bot.send_message(chat_id="...", text="...")
async def periodic_send():
while True:
await send_new_ad()
await asyncio.sleep(60) # вместо 60 став нужно время в секундах
async def main():
try:
await asyncio.create_task(periodic_send())
await bot.delete_webhook(drop_pending_updates=True)
await dispatcher.start_polling(bot)
finnaly:
await bot.session.close()
if __name__ == '__main__':
asyncio.run(main())
Если не хочешь писать нужное время в секундах можешь использовать timedelta
из datetime