You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Reddit关键词回复Bot随机选取关键词-回复对执行?

实现Reddit Bot随机选择关键词-回复对的方案

核心思路是把所有关键词-回复对统一存成列表,每次处理评论前随机打乱列表顺序,再按打乱后的顺序匹配,这样就不会固定按原顺序优先匹配某组关键词了。

具体修改步骤:

  1. 重构关键词-回复对为列表
    把原来分散的变量整合为一个包含(关键词, 回复内容)元组的列表,同时修正你代码里的变量名笔误(比如penge_comment应该是hello_comment,koster_comment应该是goodbye_comment):
keyword_reply_pairs = [
    (" hello ", "Hello"),
    (" goodbye", "Goodbye"),
    (" is it true? ", "It is true")
]
  1. 每次处理评论前随机打乱列表
    用random.shuffle()在每次遍历评论前打乱列表顺序,这样每次匹配的优先级都是随机的。

  2. 修改匹配逻辑
    原来的if-elif是固定顺序匹配,现在改成遍历打乱后的列表,找到第一个匹配的关键词就回复,然后跳出循环,避免重复匹配。

修改后的完整代码:

import random
import time

# 把关键词-回复对整合成列表
keyword_reply_pairs = [
    (" hello ", "Hello"),
    (" goodbye", "Goodbye"),
    (" is it true? ", "It is true")
]

for submission in subreddit.hot(limit=10):
    print(submission.title)

    for comment in submission.comments:
        if hasattr(comment, "body"):
            comment_lower = comment.body.lower()
            # 每次处理评论前打乱关键词列表
            random.shuffle(keyword_reply_pairs)
            # 遍历打乱后的列表找匹配项
            for keyword, reply in keyword_reply_pairs:
                if keyword in comment_lower:
                    print(comment.body)
                    comment.reply(reply)
                    break  # 找到匹配后跳出,避免重复回复
    # 处理完一个帖子的所有评论后,等待10分钟再扫描下一个
    time.sleep(600)

注意点:

  • 把time.sleep(600)移到外层循环,避免处理每条评论都等10分钟(原来的逻辑会导致处理一条评论就停10分钟,效率极低)。
  • random.shuffle()是原地修改列表,每次调用都会打乱顺序,保证每次匹配的优先级随机。

内容的提问来源于stack exchange,提问作者Loopski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 12:21:31