所以我使用PRAW创建了一个简单的reddit bot:
import praw
import time
from praw.helpers import comment_stream
r = praw.Reddit("han_solo_response")
r.login()
target_text = "I love you"
response_text = "I know"
processed = []
while True:
for c in comment_stream(r, 'all'):
if target_text in c.body and c.id not in processed:
#if find comment not in cache
c.reply(response_text)
processed.append(c.id) #then push the response
time.sleep(20)
每当有人在reddit的任何地方发布“我爱你”时,每个着名的星球大战电影交流都会产生“我知道”的单独回应。它现在正在运作,但它正在捕捉任何包含“我爱你”的东西,例如我不得不删除一个评论,其中那个人说“我爱你的车”。
如何将其触发器限制为精确地“我爱你”,而不是“你的”或任何其他包含“你”的单词,或者就此而言,使其响应仅由独立短语触发,而不是当它出现在句子的上下文中时。
答案 0 :(得分:0)
这一行:
if target_text in c.body and c.id not in processed:
应该是:
if target_text == c.body and c.id not in processed:
如果你想让它不区分大小写:
target_text = "i love you"
和
if target_text == c.body.lower() and c.id not in processed: