Некоторое время назад я начал с python и сделал простого бота для Reddit. К сожалению, функциональность бота работает только с сообщениями, сделанными до запуска бота в терминале. Если после запуска бота в сабреддите создается сообщение, он не комментирует и не получает эти сообщения.
Еще одна вещь, которая может быть связана, это то, что консоль выводит «Нет подходящих сообщений прямо сейчас». дважды вместо одного раза. Я не уверен, связано ли это.
Вот код, который, я думаю, является импортом для этой проблемы, если вам нужно больше контекста, дайте мне знать !:
def mainloop():
counter1 = 0 # Counts submissions in new that have been crawled
for submission in subreddit.new(limit=5): # Get the 5 newest submissions
counter1 = counter1 + 1
callings = ['canada', 'canadian', '????????'] # Triggers
normalized_title = submission.title.lower()
normalized_text = submission.selftext.lower()
while True:
if submission.id not in posts_replied_to: # If the post is new to the bot
time.sleep(30) # Keep spam low
for canadian_mentions in callings:
if canadian_mentions in normalized_title: # If trigger is in title
# Make the reply, print to console, then add the post to the replied storage
submission.reply(reply_text)
print("Bot replying to : ", submission.title, "\n")
posts_replied_to.append(submission.id)
elif canadian_mentions in normalized_text: # If trigger is in text body
# Make the reply, print to console, then add the post to the replied storage
submission.reply(reply_text)
print("Bot replying to : ", submission.selftext, "\n")
posts_replied_to.append(submission.id)
else:
print("No applicable posts right now.")
while True:
после проверки новых сообщений:for submission in subreddit.new(limit=5):
Вы больше никогда не получите новые сообщения после того, как войдете в бесконечный цикл. Вам нужно изменить код. - person abc   schedule 28.08.2018else:
, и программа бездействовала на этом операторе. если бы я исправил это и тоже вышел из циклаwhile True
, у него все равно была бы такая же проблема! Благодарность! - person Bryn   schedule 28.08.2018