2016-07-16 10 views
0

ここに私のコードです。エラーは発生しませんが、正しい方法では機能しませんのでご注意ください。PRAW投稿とコメントを正しく読まないプログラム

import praw 
import time 

r = praw.Reddit(user_agent = "This is a program to check if anyone is cursing on the forum.") 
r.login("BottyMcFooFoo","991319") 
curseWords = ['nigger','bitch','faggot','shit','shit','dick','cock'] #Excuse my foul mouth 
alreadyScolded = [] 
scoldedPosts = 0 
scoldedComments = 0 
looped = 0 
def run_botA(): 
    global looped 
    global postText 
    global commentText 
    global postle 
    global comment 

    subreddit = r.get_subreddit("test") 
    postle = subreddit.get_rising(limit = 20) 

    comment = subreddit.get_comments(limit=20) 
    for x in postle: 
     postText = x.selftext.lower() 
    for x in comment: 
     commentText = x.body.lower() 
    looped += 1 
    print("Configuring settings") 
    print() 
    print() 


def run_botB(): 
    global looped 
    global postText 
    global commentText 
    global curseWords 
    global postle 
    global comment 
    global alreadyScolded 
    global scoldedPosts 
    global scoldedComments 
    for posts in postle: 
     print("Checking posts for naughty language") 
     print() 
     print() 
     has_praw = any(string in postText for string in curseWords) 
     if has_praw == True and posts.id not in alreadyScolded: 
      r.send_message("I am a bot, but you should watch your mouth young man/woman/fire hydrant(I dont mean to misgender)") 
      alreadyScolded.append(posts.id) 
      scoldedPosts += 1 

    for comments in comment: 
     print("Checking comments for naughty language") 
     print() 
     print() 
     has_praw = any(string in commentText for string in curseWords) 
     if has_praw == True and comments.id not in alreadyScolded: 
      r.send_message("I am a bot, but you should watch your mouth young man/woman/fire hydrant(I dont mean to misgender)") 
      alreadyScoled.append(posts.id) 
      scoldedComments += 1 
    print("Done %d loops." %(looped)) 
    print("Scolded %d posts and %d comments" %(scoldedPosts,scoldedComments)) 
    for x in range(10): 
     print() 


run_botA() 
run_botB()    
input("Press enter to close m8!") 
+0

何が問題なのか、どのように解決しようとしたのかを記入してください。 – Elazar

+0

サブリディット 'test'の投稿やコメントは読んでいません。私はテストポストを作ってみました。私は呪いの言葉を調べる方法を変えることで問題を解決しようとしました。 – Pythonic

+0

質問に詳細を追加してください – Elazar

答えて

0

私は、少なくとも部分的には、あなたの問題はここから始まります、と信じています:

for x in comment: 
    commentText = x.body.lower() 
このループは、単に 最後コメント本体の下テキストを示すために commentTextを取るになる

。あなたはたぶんリスト内のコメントを集計したいと思っていたでしょう:

comment_list = [x.body.lower() for x in comment] 
+0

comment_list.append(x.body)?またはリストの名前が – Pythonic

+0

であれば、おそらくはいです。私は例を追加します – Elazar

関連する問題