2010-07-25 39 views
4

我正在学习Python并希望开始一个小型项目。看起来,制作IRC机器人是初学者中非常受欢迎的项目,所以我认为我会实施一个。显然,核心功能就像能够连接到服务器并加入频道一样,但是机器人通常会包含哪些好的功能?感谢您的想法。IRC机器人功能

回答

2

除非它仅用于教育体验,否则应该只是使用框架来实现核心功能。

这就是说,这里的一些在我家IRC频道机器人做的事情:

  • 从选项列表中选择一个项目
  • 显示来自Linux的命运随机项文件
  • 显示Emacs间谍文件中的一组随机单词
  • 检查用户的每一行,并显示来自The Big Lebowski的报价,如果它足够相似(这可能有点特定于我的通道:))
  • 检查链接之前已经提到,说谁/时(我们都读同样的RSS提要,并趋向于复制链接很多)
  • 进行调查
  • 从我们的内部QDB
  • 拉一个给定的报价检查给定的链接是否已发布到Reddit,如果是,则给出相应的Reddit主题链接。如果发布了Reddit链接,请改为直接链接
  • 跟踪指定的昵称在频道中的最后一次以及最后一次发言的时间
  • 为队列中自动发送的离线昵称排队消息他们加入
  • 使用谷歌翻译给定短语
  • 邮给定的线,我们的渠道的Twitter的饲料
  • 选择一个随机的用户,并踢他们(不是最好的办法依赖于你的渠道是如何刁蛮)
  • 翻译
  • 从Wikipedia中提取给定词汇的摘要,并将其与al墨全文
  • 任何
  • 显示信息发布Youtube链接(视频标题,长度,提交,投票,评论等)
+0

您使用什么方法来确定lebowski报价的相似性? – Daenyth 2010-07-25 13:07:53

+0

@Daenyth它使电影在阵列中保持约1500行,并使用具有'k = 3'的模糊[bitap算法](http://en.wikipedia.org/wiki/Bitap_algorithm)循环遍历它,以检查是否用户的字符串是任何行的模糊子字符串。 Bitap很有用,因为它可以告诉你子字符串在哪里,所以机器人可以显示电影中的完整行,但是强调它的子字符串,它与用户所说的 – 2010-07-25 16:55:44

1

我也在编写node.js中的bot。下面是一些我的目标/功能:

  • 地图“@”命令,这样机器人检测的最后一个URI在消息历史记录,并使用W3 HTML验证服务
  • 设置一个小游戏,通过调用问,问! 3个提示一个问题,必须加载自定义问题的能力基于类别
  • 获得与天气weather [邮编/名称]
  • 勾起来jseval命令对JavaScript的,同为Python和Perl和Haskell
  • seen指挥塔牛逼报告最后一次机器人已经“看到”一个人的在线
  • 翻译命令X语言字符串
  • 转化为Y语言字符串映射dict到词典服务
  • 地图wik到维基服务
0

这是非常主观的,完全取决于机器人的使用位置。我相信别人会有很好的建议。但无论你做什么,请做而不是任意查询用户。并且定期做不是垃圾邮件的主要聊天。

0

做一个谷歌搜索,获得实现IRC协议为您库。这样你只需要添加这些功能,那些功能已经足以打扰你了。

常用功能:

  • 从维基进行搜索或谷歌
  • 通知其他人关于项目/课题更新
  • 留言
  • 玩具为垃圾邮件的通道
  • 选择一个话题
  • 分类信息
  • 从c hannel日志
+0

'这些已经足够打扰你了。 OP在学习Python,知道如何在Python中使用套接字是至关重要的,如果您想要为未广泛使用的协议实现客户端/服务器支持等等。 – 2015-04-04 19:53:19

1

同样,这是一个完全个人化的建议,但我真的很希望看到用Python重写eggdrop。

这样的项目可以使用Twisted提供基本的IRC交互,但需要支持附加脚本。

这对于允许使用python而不是TCL脚本构建简单的IRC bot功能很有用。

+0

我会有兴趣参与像这样的项目,而不是Python的专业人士,但很乐意伸出援助之手。 – Chris 2010-07-25 13:34:17