Time.sleep () приостанавливает выполнение - Python - PullRequest
0 голосов
/ 04 октября 2018

Итак, я делаю Reddit Bot на Python, используя код из этого репозитория .

И он работает нормально.Но согласно рекомендациям Reddit, я могу комментировать только каждые 10 минут.Итак, я использую цикл for, а последняя часть кода выглядит примерно так:

i=1
for submission in subreddit.hot(limit=10):
    if not os.path.isfile("posts_replied_to.txt"):
        posts_replied_to = []

    # Or load the list of posts we have replied to
    else:
        with open("posts_replied_to.txt", "r") as f:
            posts_replied_to = f.read()
            posts_replied_to = posts_replied_to.split("\n")
            posts_replied_to = list(filter(None, posts_replied_to))
# Pull the hottest 10 entries from a subreddit of your choosing
    #print(submission.title)
    if(i%5!=0):
    # Make sure you didn't already reply to this post
        if submission.id not in posts_replied_to:

            # Not case sensitive
            if re.search("backpacking", submission.title, re.IGNORECASE):
                # Reply
                foo=['Awesome','Pretty nice eh!','Cool','Very beautiful','I would love to go there',\
                    'I also want to try it out now', 'Really cool', 'Can\'t wait to go there', 'Nice']
                random_index = randrange(len(foo))
                submission.reply(foo[random_index])

                print("Bot replying to : ", submission.title)

                # Store id in list
                posts_replied_to.append(submission.id)
    else:
        if submission.id not in posts_replied_to:

            # Not case sensitive
            if re.search("backpacking", submission.title, re.IGNORECASE):
                # Reply
                foo=['https://****.in']
                random_index = randrange(len(foo))
                submission.reply(foo[random_index])

                print("Bot replying to : ", submission.title)

                # Store id in list
                posts_replied_to.append(submission.id)    
    i+=1
    with open("posts_replied_to.txt", "w") as f: # Write updated list to file
        for post_id in posts_replied_to:
            f.write(post_id + "\n")
    time.sleep(600) #10 minutes delay

Так что для 10 лучших подредакторов в рюкзаке я хочу публиковать каждые 10 минут и каждые 5-екомментарий Я хочу опубликовать ссылку, поэтому я использую if (i%5)!=0.

Теперь вы можете видеть, что я добавил time.sleep() в последний раз.Когда я закомментирую это, он выполняется нормально, и, делая второй комментарий, он показывает ошибку исключения API, попробуйте опубликовать через 9 минут, что является законным основанием для рекомендаций Reddit.

Но когда я использую time.sleep()функция больше не выполняется, я ждал более 10 минут, около получаса, но все еще не выполняется, я не могу понять, почему!

Есть ли какое-либо ограничение на нет.комментариев в день?Я не нашел ни одного, поэтому, если кто-нибудь знает, пожалуйста!

PS. Мой основной мотив - выполнять эту функцию публикации каждые 10 минут, не обязательно быть time.sleep(), если есть какие-либо другие подходящие функции.Пожалуйста, не предлагайте cronjob.

...