使用电报机器人按计划发送消息

时间:2018-09-09 15:35:02

标签: python python-3.x datetime telegram

我有一个电报机器人,必须在特定时间向我发送时间表。

我正在使用与Telegram API配合使用的请求,由于我住在俄罗斯(我们已屏蔽Telegram),因此我需要使用代理。我使用的代理是低速的,但对我来说几秒钟就可以了。另外我正在使用datetime库获取当前时间,并检查它是否等于计划时间

有一段代码:

while True:
        updates = get_updates(last_id)

        if len(updates["result"]) > 0:

            last_id = get_last_id(updates) + 1

            if (day == 0) and (hour == 8) and (minute == 0) and (sec == 0):  # for Monday
                print('sending...')
                send_all(stuff.monday)
                print("sent")
            elif (day == 1) and (hour == 8) and (minute == 0) and (sec == 0):  # for Tuesday
                print('sending...')
                send_all(stuff.tuesday)
                print("sent")
            elif day == 2 and (hour == 8) and (minute == 0) and (sec == 0):  # for Wednesday
                if (is_even % 2 == 0):
                    print('sending...')
                    send_all(stuff.wednesday_even)
                    print("sent")
                else:
                    print('sending...')
                    send_all(stuff.wednesday_odd)
                    print("sent")

它不起作用。我不明白为什么。也许还有另一种时间检查方法。这很奇怪,因为in this link作者使用相同的检查方法,而且似乎可以正常工作。

致谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,只需使用schedule library

它看起来像:

import schedule
schedule.every().any_day_of_the_week.at(MM:SS).do(your_routine)