Всем привет!
Мне нужно обрабатывать свои события. Например если наступило 22:57 вызвать какую-то функцию, но делать условием нельзя, т.к. это мне нужно реализовать в aiogram
Код
async def main():
bot = Bot(token=TOKEN, )
dp = Dispatcher()
db = DataBase()
dp.update.middleware(TechnicalBreak())
dp.callback_query.register(reg.start_reg, F.data == "register")
dp.message.register(basic.tech, Command(commands='tech'))
dp.message.register(basic.start, CommandStart())
dp.message.register(basic.start, F.text == 'Ещё раз')
dp.message.register(basic.start, AS.get_eshe)
dp.message.register(basic.faq, F.text=='F.A.Q.')
dp.message.register(basic.week_kb_select, F.text.count('\n') == 1)
dp.message.register(basic.get_login, AS.get_login)
dp.message.register(basic.get_password, AS.get_password)
dp.message.register(basic.get_user, Command(commands='all'))
dp.message.register(basic.text, F.text)
try:
await bot.delete_webhook(drop_pending_updates=True)
await dp.start_polling(bot)
except:
await bot.session.close()
if __name__ == '__main__':
shutil.rmtree('tempfiles/')
os.mkdir(path='tempfiles/')
asyncio.run(main())
Как можно заметить, мне нужно очищать папку tempfiles. Реализовал это при запуске бота, но такой подход не очень эффективен, т.к. очистку папки нужно делать приблизительно в 4-5 утра. Можно было бы реализовать этот перезапуск бота на стороне хостинга, но как по мне тоже не очень отключать бота, если юзер проходит регистрацию, т.к. ему придется заново проходить все этапы.
Пробовал ставить условие и оно проверяется 1 раз при вызове main(), ну это логично. Писал возможные циклы которые вызывают постоянно main(), но это еще одна нагрузка на бота.