4

我正在学习 Python,并想开始一个小项目。似乎制作 IRC 机器人是一个在初学者中很受欢迎的项目,所以我想我会实施一个。显然,有一些核心功能,比如能够连接到服务器并加入频道,但机器人通常包含哪些好的功能?谢谢你的想法。

4

5 回答 5

2

除非它只是为了教育体验,否则你真的应该只为核心功能使用框架。

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

  • 从选项列表中选择一项
  • 显示 Linux 命运文件中的随机条目
  • 显示来自 Emacs spook 文件的随机单词集
  • 检查用户的每一行并显示来自The Big Lebowski的引述,如果它足够相似(这可能有点我的频道特定的:))
  • 检查之前是否提到过链接并说出谁/何时(我们都阅读相同的 RSS 提要并且倾向于重复链接很多)
  • 进行民意调查
  • 从我们的内部QDB中提取给定的报价
  • 检查给定的链接是否已发布到 Reddit,如果是,请提供相应的 Reddit 线程链接。如果发布了 Reddit 链接,请提供直接链接
  • 跟踪给定昵称最后一次出现在频道中,以及他们最后一次说话的时间
  • 为离线昵称排队,当他们加入时,该昵称会在频道内自动发送
  • 使用谷歌翻译翻译给定的短语
  • 将给定的行发布到我们频道的 Twitter 提要
  • 选择一个随机用户并踢他们(这不是最好的主意,具体取决于您的频道有多不守规矩)
  • 从 Wikipedia 中提取给定术语的摘要并将其与完整文章的链接一起显示
  • 显示有关任何已发布的 Youtube 链接的信息(视频标题、长度、提交者、投票、评论等)
于 2010-07-25T06:59:12.447 回答
1

我也在用 node.js 编写一个机器人。以下是我的一些目标/功能:

  • map '@' 命令,以便机器人检测到消息历史记录中的最后一个 URI 并使用 w3 html 验证服务
  • 通过调用 !ask 设置问答游戏,提出 3 个提示的问题,能够根据类别加载自定义问题
  • weather使用[zip/name]获取天气信息
  • 连接jseval命令来评估 javascript,对于 python 和 perl 和 haskell 相同
  • seen报告机器人最后一次“看到”一个人在线的命令
  • translate 命令将 X 语言字符串翻译成 Y 语言字符串
  • 映射dict到字典服务
  • 映射wik到 wiki 服务
于 2010-07-25T06:43:06.307 回答
1

Again, this is an utterly personal suggestion, but I would really like to see eggdrop rewritten in Python.

Such a project could use Twisted to provide the base IRC interaction, but would then need to support add-on scripts.

This would be great for allowing easy IRC bot functionality to be built upon using python, instead of TCL, scripts.

于 2010-07-25T12:58:38.317 回答
0

这是非常主观的,完全取决于机器人将在哪里使用。我相信其他人会有很好的建议。但无论做什么,请不要随意查询用户。并且不要定期向主聊天发送垃圾邮件。

于 2010-07-25T06:50:06.653 回答
0

进行谷歌搜索以获取为您实现 IRC 协议的库。这样你只需要添加功能,这些已经足够让你烦恼了。

常用功能:

  • 从 wiki 或 google 进行搜索
  • 通知人们有关项目/问题的更新
  • 留言
  • 向频道发送垃圾邮件的玩具
  • 选择一个主题
  • 对消息进行分类
  • 从频道日志中搜索
于 2010-07-25T07:10:45.490 回答