gpt4 book ai didi

python - 如何在 Sopel IRC 机器人模块中设置并稍后更改 @rule? (Python)

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:58 25 4
gpt4 key购买 nike

我正在与 Sopel 合作(之前是 Willie,之前是 Jenni/Phenny)Python IRC 机器人,因为我想为我们的 IRC channel 设置一个问答游戏。

使用 Sopel,@rule 装饰器可让您设置机器人将监听的字符串,并在遇到该字符串时触发相应的函数。因此,对于测验,我希望机器人通过说“Corretamundo!”来确认正确答案。当有人答对问题时。

A. 我尝试的第一件事是嵌套函数。从 q_and_as 元组列表中选择一个随机问题后,它将答案 (q[1]) 设置为应该触发 Correct() 函数的规则。

from sopel.module import commands, rule
import random

q_and_as = [('Why?', 'because'), ('Can I kick it?', 'nope')]

@commands("quizme")
def ask_q(bot, trigger):
q = random.choice(q_and_as)
bot.say(q[0])
@rule(q[1])
def correct(bot, trigger):
bot.sat('Correctamundo!')

无论出于何种原因,这样做时答案都不会触发 Correct() 函数。

B。我还尝试将答案 (q[1]) 传递给单独的答案函数,然后该函数将其设置为触发 Correct() 函数的规则。

from sopel.module import commands, rule
import random

q_and_as = [('Why?', 'because'), ('Can I kick it?', 'nope')]

@commands("quizme")
def ask_q(bot, trigger):
q = random.choice(q_and_as)
bot.say(q[0])
answer(bot, trigger, q[1])

def answer(bot, trigger, answer):
@rule(answer)
def correct(bot, trigger):
bot.say(' correctamundo!')

不过,该函数仍然没有被触发。有什么想法我哪里出错了吗?或者有更好的方法吗?谢谢。

最佳答案

我还在开发 sopel 琐事。您应该将答案规则作为单独的规则

@rule('^[^\.\.]')

然后评估答案

这就是说,如果有一个答案(不是命令)

关于python - 如何在 Sopel IRC 机器人模块中设置并稍后更改 @rule? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34419265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com