我不知道如何包装一个函数,以便它在某个时间点发送消息
from telethon import TelegramClient
import configparser
import threading
import schedule
config = configparser.ConfigParser() # чтение из конфига
config.read("config.ini")
API_ID = config['Telegram']['api_id'] # можно получить с ссылки выше
API_HASH = config['Telegram']['api_hash'] # можно получить с ссылки выше
USER_NAME = config['Telegram']['username'] # Ваш ник в телеграмме
client = TelegramClient(USER_NAME, API_ID, API_HASH).start()
messages_group = {
1: "Отправляю раз в 1 минуту",
2: "Отправляю раз в 2 минуты"
}
group = ["name"]
class MessagesPerTime(threading.Thread):
def __init__(self):
super(MessagesPerTime, self).__init__()
for i in messages_group:
schedule.every(i).seconds.do(lambda: self.send_message(messages_group[i])).tag(messages_group[i])
def run(self) -> None:
while True:
schedule.run_pending()
def send_message(self, message):
for i in group:
client.send_message(i, message=message)
if __name__ == '__main__':
bot = MessagesPerTime()
bot.start()
try:
client.run_until_disconnected()
finally:
client.disconnect()
给出错误信息
\venv\lib\site-packages\schedule\__init__.py:94: RuntimeWarning: coroutine 'MessagesPerTime.send_message' was never awaited
self._run_job(job)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
ps不擅长异步编程
此代码
start()每天早上 8:30 执行该函数。schedule.every(5).minutes.do(job)- 每 5 分钟