Цикл. Pyrogram (Python). С планированием задач

Хочу написать Юзер-бота. Использовал Pyrogram. Суть в чем, в некоторое заранее выбранное время он должен в нужный чат отправить нужное сообщение от моего имени... Свои наработки предоставляю, но оно не работает (

from pyrogram import Client
import time
import random
import schedule


app = Client("my_account", config_file="config.ini")
@app.on_message()
def twenty():
    app.send_message("-1001290958283", "Сообщение отправленно в 12:00")

schedule.every().day.at("12:00").do(twenty)       


while True:
    schedule.run_pending()
    time.sleep(1)
scheduler.start()
app.run()

Ответы (1 шт):

Автор решения: gil9red

Строчки scheduler.start() и app.run() никогда не будут выполняться, т.к. выше бесконечный цикл. Код с циклом засуньте в отдельный поток

Пример:

import time
from threading import Thread

import schedule
from pyrogram import Client


app = Client("my_account", config_file="config.ini")
def twenty():
    app.send_message("-1001290958283", "Сообщение отправлено в 12:00")

def run():
    schedule.every().day.at("12:00").do(twenty)

    while True:
        schedule.run_pending()
        time.sleep(1)


Thread(target=run).start()
app.run()

Если сейчас schedule будет вызывать twenty с @app.on_message(), это вызовет проблему и решением будет завести отдельную функцию для schedule без декоратора, либо вручную вызвать app.send_message:

    schedule.every().day.at("12:00").do(
        app.send_message, "-1001290958283", "Сообщение отправлено в 12:00"
    )
→ Ссылка