Итак, я делаю 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.