IRC机器人功能
我正在学习Python,想开始一个小项目。听说做IRC机器人是初学者中很受欢迎的项目,所以我想试试做一个。显然,机器人需要一些基本功能,比如能够连接到服务器和加入频道,但通常还会有哪些好的功能呢?谢谢大家的建议。
5 个回答
1
我也在用node.js写一个机器人。以下是我的一些目标和功能:
- 设置一个'@'命令,让机器人能检测到消息历史中最后的链接,并使用w3的html验证服务。
- 创建一个问答游戏,通过输入!ask来提问,提供3个提示,并能根据类别加载自定义问题。
- 通过
weather
[邮政编码/名称] 获取天气信息。 - 连接
jseval
命令来执行javascript代码,python、perl和haskell也一样。 - 有一个
seen
命令,可以报告机器人最后一次“看到”某人在线的时间。 - 翻译命令,可以把X语言的字符串翻译成Y语言的字符串。
- 把
dict
映射到一个词典服务。 - 把
wik
映射到维基百科服务。
1
再说一次,这只是我个人的建议,但我真的希望能把eggdrop用Python重写。
这个项目可以使用Twisted来处理基本的IRC互动,但还需要支持一些附加的脚本。
这样的话,就可以用Python来轻松构建IRC机器人功能,而不是使用TCL脚本。
2
除非你只是为了学习体验,否则最好还是用框架来处理核心功能。
说到这个,我家IRC频道里的机器人做了一些事情:
- 从选项列表中随机选择一个项目
- 显示Linux的“幸运语录”文件中的随机一句话
- 显示Emacs的“恶搞文件”中的随机词组
- 检查用户发的每一行,如果和《大 Lebowski》中的某句台词相似,就显示那句台词(这可能是我频道特有的功能 :))
- 检查某个链接是否之前提到过,并告诉大家是谁/什么时候提到的(我们都看相同的RSS源,常常重复链接)
- 进行投票
- 从我们的内部数据库中提取某句名言
- 检查某个链接是否在Reddit上发过,如果发过,就给出相应的Reddit帖子链接。如果是Reddit链接,就直接给出链接
- 记录某个昵称最后一次在频道出现的时间,以及最后一次发言的时间
- 为离线的昵称排队消息,等他们上线时自动发送到频道
- 使用谷歌翻译翻译某个短语
- 将某句话发布到我们频道的Twitter动态
- 随机选择一个用户并将其踢出频道(这要看你频道的情况,可能不是个好主意)
- 从维基百科提取某个术语的摘要,并显示链接到完整文章
- 显示任何发布的Youtube链接的信息(视频标题、时长、提交者、投票、评论等)