第一个问题! 了hi5
所以,我有自己的Phenny python IRC机器人版本(https://github.com/sbp/phenny)。我正在尝试做的是让他们在IRC服务器上查询一个在给定频道中的缺刻列表。
我知道(通过查看一些phenny的模块)我可以使用以下命令查询服务器:
phenny.write(['NAMES'], channel)
我遇到麻烦的地方是从服务器获取响应并将其解析为缺刻列表。我认识到我想要的答案可能是在bot.py或irc.py的phenny模块中,但我只编写了大约2个月的Python并且不能完全理解它。
任何帮助将不胜感激,谢谢!!
答案 0 :(得分:0)
好的,所以我找到了一种方法,它(大部分)都有效。
我有一个例程,它触发'353'事件,这是服务器响应/ NAMES命令的方式。它将缺刻列表存储到搁置数据库中,并按频道索引。
def nametrigger(phenny, input):
names = re.split(' ', input)
names = [n.split('!')[0] for n in names]
names = [n.replace('~','') for n in names]
namesdb = shelve.open(phenny.logdir+'/nicks')
namesdb[input.args[2]] = names
namesdb.close()
nametrigger.event = '353'
nametrigger.rule = '(.*)'
nametrigger.priority = 'high'
每当加入频道时,我都会写一些实用程序命令来调用/ NAMES,以及每当其他人加入,离开或更改缺刻时。这应该保持数据库更新,尽管它似乎还没有100%工作。
然后,每当我想要缺刻列表时,我就可以加载数据库。