Цикл. 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"
)