我正在使用Python创建一个Twitch机器人,因为mIRC开始要求我付费,所以我选择了更简单,更自由的东西!我目前的问题是我想制作一个命令(!addcom
),主持人可以在其中添加其他用户可以使用的命令。
例如,!addcom !test This is a test
会将!test This is a test
写入文件或Python文件本身,然后有人可以!test
,并在聊天中说This is a test
。目前我正在努力找到一个很好的方法来做到这一点,这就是我到目前为止所做的:
def command_addcom():
file = open("test.txt", "w")
msg = input('')
file.write(msg)
file.close()
send_message(CHAN,'Command added (testing)')
不幸的是,这只是在命令提示符中要求输入而根本没有帮助。我很乐意直接从聊天中获取文本并将其放在文件中。很抱歉,我没有太多的代码可以显示,但这就是现在的整个命令!谢谢你提前帮忙。
答案 0 :(得分:0)
我建议你在python dict中保存所有用户定义的命令。例如,在您的示例中,将是
command['!test'] = 'This is a test'
对于你提到的保存问题,我建议使用json
模块。
保存在命令 dict
with file('setting.json','w') as settingFile
json.dump(command, settingFile)
每次bot init,都应该从实际的json文件中加载命令 dict
with file('setting.json','r') as settingFile:
command = json.load(settingFile)
所以你现在在程序
中有用户定义的命令dict最后,在您的用户消息解析器(这里我假设它是userMessage
)中,您应该检查是否可以在命令 dict中找到用户命令。尝试
userCommand = userMessage.split(' ')[0]
if command[userCommand]:
# sendmsg to Twicth IRC
print command[userCommand]
官方python文档应提供有关如何使用json
模块的足够信息,或者您可以尝试ConfigParser
。