使用Phenny bot获取IRC频道中的缺刻列表

时间:2014-01-23 01:32:47

标签: python-2.7 bots irc

第一个问题! 了hi5

所以,我有自己的Phenny python IRC机器人版本(https://github.com/sbp/phenny)。我正在尝试做的是让他们在IRC服务器上查询一个在给定频道中的缺刻列表。

我知道(通过查看一些phenny的模块)我可以使用以下命令查询服务器:

phenny.write(['NAMES'], channel)

我遇到麻烦的地方是从服务器获取响应并将其解析为缺刻列表。我认识到我想要的答案可能是在bot.py或irc.py的phenny模块中,但我只编写了大约2个月的Python并且不能完全理解它。

任何帮助将不胜感激,谢谢!!

1 个答案:

答案 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%工作。

然后,每当我想要缺刻列表时,我就可以加载数据库。