Авто загрузка файлов с Яндекс Диска
Мне нужно как-то реализовать функцию авто загрузки определенного файла с яндекс диска, имеющее такое название : "<завтрашняя дата>.docx", и нужно чтобы она вызывалась каждый день кроме субботы в 00:10 часов вместе с работай телеграм бота, работающего на библиотеке aiogram версии 3.1.1 . Я испробывал много методов, как от обычного schedule.every().monday.at("00:10").do(download_tomorrow), так и такого-же способа, но на асинхронной библиотеке aioschedule, но ни один из способов не позволяет мне скачивать файл с таким названием параллельно работы бота. Есть ли какой либо способ решить эту проблему? мой код функции выглядит так:
def download_tomorrow():
with yadisk:
yadisk.download(f"/ДТК/Расписание занятий/Расписание занятий 2023-2024/Февраль/Расписание " + str(tomorrow_date) + ".docx", f"schedule/" + tomorrow_date + ".docx")
#download tomorrow every day (синхронная библеотека)
schedule.every().sunday.at("00:10").do(download_tomorrow)
schedule.every().monday.at("00:10").do(download_tomorrow)
schedule.every().tuesday.at("00:10").do(download_tomorrow)
schedule.every().wednesday.at("00:10").do(download_tomorrow)
schedule.every().thursday.at("00:10").do(download_tomorrow)
schedule.every().friday.at("00:10").do(download_tomorrow)
#на асинхронной библиотеке
async def download_tomorrow():
with yadisk:
yadisk.download(f"/ДТК/Расписание занятий/Расписание занятий 2023-2024/Февраль/Расписание " + str(tomorrow_date) + ".docx", f"schedule/" + tomorrow_date + ".11.docx")
asyncio.sleep(1)
for i in range(1,3):
schedule.every().sunday.at("00:10").do(download_tomorrow)
loop = asyncio.get_event_loop()
while True:
loop.run_until_complete(schedule.run_pending())
time.sleep(0.1)
пишу на питоне, из всей основной работы бота осталось сделать только это и авто рассылку утром каждого дня кроме воскресения файла с именованием "<сегодняшняя дата>.docx", а также каждый вечер кроме субботы файл с именем "<завтрашняя дата>.docx" Буду благодарен если поможете с написанием
Ответы (1 шт):
минимально-воспроизводимый пример:
import asyncio
import aioschedule
from aiogram import Bot, Dispatcher
bot = Bot(token="214584065")
dp = Dispatcher(bot)
async def download_tomorrow():
print('download_tomorrow')
async def scheduler():
aioschedule.every().minutes.do(download_tomorrow)
while True:
await aioschedule.run_pending()
await asyncio.sleep(1)
async def main():
asyncio.create_task(scheduler())
await dp.start_polling(bot)
asyncio.run(main())