Reddit机器人在特定时间后停止评论

2024-09-29 04:29:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试做一个机器人,在reddit标题中搜索一个特定的关键字,如果该关键字是真的,那么它会在该线程中注释一些东西。一切工作发现,只是我有一个问题,大约4个小时后,它继续搜索,但它停止评论的一些原因,不知道为什么。然后我重新启动它,它工作正常。你知道吗

这似乎发生在太平洋标准时间每天下午3点左右,它不断打印,它正在搜索,但它只是不会评论,即使有帖子,包含关键字。这是reddit用来阻止机器人的方法还是我的代码有问题。你知道吗

在我的3个子reddit函数中没有reddit praw语句之前,我想测试一下,在每次搜索之后是否继续重新连接到prawl,它是否会停止这个问题。你知道吗

在某种程度上,我的reddit机器人在某一点后停止评论,我有没有办法解决这个问题,或者它是永久性的。你知道吗

#!/usr/bin/python import praw import pdb import re import os import threading import time sub1_array = ['Title'] sub1_array = ['Comment'] def sub1(): reddit = praw.Reddit('bot1') if not os.path.isfile("posts_replied_to.txt"): posts_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)) subreddit = reddit.subreddit('sub1') print("Checking sub1") for submission in subreddit.new(limit=20): i = 0 while i <= (len(sub1_array) - 1): # If we haven't replied to this post before if submission.id not in posts_replied_to: # Do a case insensitive search if re.search(sub1_array[i], submission.title, re.IGNORECASE): # Reply to the post submission.reply(link_array[i]) print("Bot replying to match: ", submission.title) del sub1_array[i] del sub1_array[i] posts_replied_to.append(submission.id) time.sleep(100) else: i += 1 else: i += 1 with open("posts_replied_to.txt", "w") as f: for post_id in posts_replied_to: f.write(post_id + "\n") sub2_array = ['Title'] sub2_link = ['Comment] def sub2(): reddit = praw.Reddit('bot1') if not os.path.isfile("posts_replied_to.txt"): posts_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)) subreddit = reddit.subreddit('sub2') print("Checking Streams NBA") for submission in subreddit.new(limit=20): #print(submission.title) i = 0 while i <= (len(sub2_array) - 1): # If we haven't replied to this post before if submission.id not in posts_replied_to: # Do a case insensitive search if re.search(sub2_array[i], submission.title, re.IGNORECASE): # Reply to the post submission.reply(sub2_link[i]) print("Bot replying to match: ", submission.title) del sub2_array[i] del sub2_array[i] posts_replied_to.append(submission.id) time.sleep(100) else: i += 1 else: i += 1 with open("posts_replied_to.txt", "w") as f: for post_id in posts_replied_to: f.write(post_id + "\n") sub3_array = ['Title'] sub3_link = ['Comment] def ncaa(): reddit = praw.Reddit('bot1') if not os.path.isfile("posts_replied_to.txt"): posts_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)) subreddit = reddit.subreddit('sub3') print("Checking sub3") for submission in subreddit.new(limit=20): #print(submission.title) i = 0 while i <= (len(sub3_array) - 1): # If we haven't replied to this post before if submission.id not in posts_replied_to: # Do a case insensitive search if re.search(sub3_array[i], submission.title, re.IGNORECASE): # Reply to the post submission.reply(sub3_link[i]) print("Bot replying to match: ", submission.title) del sub3_array[i] del sub3_array[i] posts_replied_to.append(submission.id) time.sleep(100) else: i += 1 else: i += 1 with open("posts_replied_to.txt", "w") as f: for post_id in posts_replied_to: f.write(post_id + "\n") def should_reset_timer(): pass def main(): sub1() sub2() sub3() timer = 0 while True: time.sleep(1) timer+=1 if should_reset_timer(): timer = 0 if timer == 1*30: sub1() sub2() sub3() timer = 0 # Store the current id into our list # Write our updated list back to the file main()

Tags: totxtidsubmissionifpostarrayelse