使用PRAW库,当提及给定关键字时,reddit bot会在子线程中回复帖子标题。我想进行更改,以便在子主题(而非帖子)中的评论中提及时回复。
from urllib.parse import quote_plus
import praw
QUESTIONS = ["!hello"]
REPLY_TEMPLATE = "world"
def main():
reddit = praw.Reddit(
user_agent="xxx",
client_id="xxx",
client_secret="xxx",
username="xxx",
password="xxx",
)
subreddit = reddit.subreddit("sandboxtest")
for submission in subreddit.stream.submissions():
process_submission(submission)
def process_submission(submission):
# Ignore titles with more than 10 words as they probably are not simple
# questions.
if len(submission.title.split()) > 15:
return
normalized_title = submission.title.lower()
for question_phrase in QUESTIONS:
if question_phrase in normalized_title:
url_title = quote_plus(submission.title)
reply_text = REPLY_TEMPLATE.format(url_title)
print("Replying to: {}".format(submission.title))
submission.reply(reply_text)
# A reply has been made so do not attempt to match other phrases.
break
if __name__ == "__main__":
main()
如果您只想处理注释更改:
for submission in subreddit.stream.submissions():
process_submission(submission)
至:
for comment in subreddit.stream.comments():
process_comment(comment)
# def process_comment you have to write yourself
如果要处理评论和提交,请执行以下操作:
while True:
for submission in subreddit.stream.submissions(pause_after=-1):
process_submission(submission)
for commentin subreddit.stream.comments(pause_after=-1):
process_comment(comment)
一个例子process_comment()
:
def process_comment(comment):
for question_phrase in QUESTIONS:
if question_phrase in comment.body.lower():
comment.reply("Hello")