2016-03-06 7 views
1

Я закодировал reddit bot, и я его протестировал много, и я могу сказать, что он работает хорошо, за исключением последней автоматизации деталей. В первый раз он проверяет каждый оставшийся комментарий и отвечает на них из списка массивов под названием правды и dares Когда он заканчивается, он просто печатает сообщения, которые он проверяет, но ничего не делает для новых комментариев. Im с использованием PRAW (Pythons Reddit API Wrapper) и python 3.5. СпасибоReddit bot останавливается после проверки всех комментариев

#1. Import libraries 
import praw 
import random 
import time 

#2. Write the truths and dares 
dares = ["Draw snoo", "Draw the android logo", "Spin in a circle for a minute", "Wish a random contact on a social media platform Happy birthday but it isn't their birthday", "Eat a potato" ] 
truths = ["Do you like someone on this subreddit", "Do you do drugs","Do you watch porn", "Do you pirate stuff", "What is your favorite Disney princess", "How many times have you been drunk"] 
cache = [] 


#3. Connect to reddit 
r = praw.Reddit(user_agent = "TruthAndDare by @UnknownDevelope /u/unknowndeveloper") 
r.login("Username","pass") 

def run_bot(): 
    print("Getting Subreddit ...") 
    subreddit = r.get_subreddit("subreddit") 
    print("Getting comments ...") 
    comments = subreddit.get_comments(limit=200) 
#4. Check subreddit 
#5. Check for a truth or a dares 
#6. Reply 

submission = r.get_submission(submission_id='submissionid') 
flat_comments = praw.helpers.flatten_tree(submission.comments) 
already_done = set() 
for comment in flat_comments: 
    if comment.body == "/u/TruthAndDareBot Truth" and comment.id not in already_done: 
     randomTruth = random.choice(truths) 
     comment.reply(randomTruth) 
     print("SIR I found a truth and im gonna reply to it. The post ID is: "+ comment.id) 
     cache.append(comment.id) 
    if comment.body == "/u/TruthAndDareBot Dare" and comment.id not in already_done: 
     randomDare = random.choice(dares) 
     comment.reply(randomDare) 
     print("SIR I found a Dare and im gonna reply to it. The post ID is: "+ comment.id) 
     cache.append(comment.id) 


while True: 
    run_bot() 
    time.sleep(10) 

ответ

0

Эта часть кода не была должным образом отступом, поэтому она не работала. Это код о том, как он должен работать:

def run_bot(): 
     print("Getting Subreddit ...") 
     subreddit = r.get_subreddit(SUBREDDIT) 
     print("Getting comments ...") 
     comments = subreddit.get_comments(limit=SUBMISSION_ID) 
     submission = r.get_submission(submission_id='49q8l1') 
     flat_comments = praw.helpers.flatten_tree(submission.comments) 
     already_done = set() 
     for comment in flat_comments: 
      print comment.body 
      if comment.body == "/u/TruthAndDareBot Truth" and comment.id not in already_done: 
       randomTruth = random.choice(truths) 
       comment.reply(randomTruth) 
       print("Found a truth and I'm going to reply to it. Comment ID is: "+ comment.id) 
       cache.append(comment.id) 
      if comment.body == "/u/TruthAndDareBot Dare" and comment.id not in already_done: 
       randomDare = random.choice(dares) 
       comment.reply(randomDare) 
       print("Found a Dare and I'm going to reply to it. Comment ID is: "+ comment.id) 
       cache.append(comment.id) 
+0

Вы серьезно не смогли решить проблему с отступом? вам нужно освежить свой базовый питон –

 Смежные вопросы

  • Нет связанных вопросов^_^