@alex22122
Unity, C#

Как перенести код с консольного питона на aiogram?

Всем привет! Столкнулся с проблемой, не могу перенести код с питона на aiogram. Этот скрипт отправляет сообщение в определенное время дня. Помогите пожалуйста
Код на питоне:
import schedule
import requests

def greeting():
	todos_dict = {
		'08:00': 'Drink coffee'
	}

	print("Day's tasks")
	for k, v in todos_dict.items():
		print(f'{k} - {v}')

def main():
	#greeting()

	#schedule.every(4).seconds.do(greeting)
	#schedule.every(4).minutes.do(greeting)
	#schedule.every(4).hour.do(greeting)

	schedule.every().day.at('16:27').do(greeting)

	while True:
		schedule.run_pending()

if __name__ == "__main__":
	main()


Пытался переделать под библиотеку aiogram:
import schedule
import requests

async def hello_users():
	await bot.send_message(message.chat.id == CHANNEL_ID, f'Доброе утро, хакеры!')

async def main():
	schedule.every().day.at('16:35').do(hello_users)

	while True:
		schedule.run_pending()

if __name__ == "__main__":
	asyncio.run(main())


Выдает ошибку по достижении нужного времени:
C:\Users\sasha\AppData\Local\Programs\Python\Python310\lib\site-packages\schedule\__init__.py:100: RuntimeWarning: coroutine 'hello_users' was never awaited
self._run_job(job)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
1. Поучи, как работают асинхронная программа, и почему цикл вида
while True:
    schedule.run_pending()

парализует её работу.
2. Портируй код с использованием асинхронного aioschedule.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы