IRC机器人的功能

4

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

5个回答

2
除非仅出于教育目的,否则您应该真正只使用框架来实现核心功能。
话虽如此,这是我家里IRC频道中机器人所做的一些事情:
  • 从选项列表中选择一个项目
  • 显示 Linux fortunes 文件中的随机条目
  • 显示 Emacs spook 文件中的随机一组单词
  • 检查用户的每一行,并在其足够相似时显示 The Big Lebowski 的引用(这可能有点针对特定频道 :))
  • 检查链接是否已经被提到过,并说出是谁/何时(我们都读同样的 RSS 订阅,往往会重复链接很多次)
  • 进行投票
  • 从我们内部的 QDB 中获取给定的引文
  • 检查给定的链接是否已经发布到 Reddit,并在此情况下给出相应的 Reddit 线程链接。如果已经发布了 Reddit 链接,则给出直接链接
  • 跟踪给定昵称最后进入频道的时间和最后发言的时间
  • 为离线昵称排队消息,在他们加入频道时自动在频道内发送
  • 使用 Google Translate 翻译给定短语
  • 将给定行发布到我们频道的 Twitter 订阅中
  • 选择一个随机用户并将其踢出(根据您的频道有多乱来看,这可能不是最好的想法)
  • 从 Wikipedia 中提取给定术语的摘要,并显示链接到完整文章
  • 显示任何发布的 Youtube 链接的信息(视频标题、长度、提交者、投票、评论等)

你用什么方法来确定Lebowski引语的相似性? - Daenyth
@Daenyth 它将电影中的约1500行存储在一个数组中,并使用模糊比特应用算法循环遍历它,其中k = 3以检查用户的字符串是否是任何一行的模糊子字符串。比特应用算法非常有用,因为它告诉您子字符串的位置,所以机器人可以显示电影中的完整行,但是用下划线标出与用户输入匹配的子字符串。 - Michael Mrozek

1

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

  • 映射“@”命令,使机器人检测消息历史记录中的最后一个URI,并使用w3 html验证服务
  • 通过调用!ask设置问答游戏,提出带有3个提示的问题,并能够根据类别加载自定义问题
  • 使用weather [zip/name]获取天气
  • 连接jseval命令以评估JavaScript,同样适用于Python、Perl和Haskell
  • seen命令报告机器人上次“看到”某人在线的时间
  • 翻译命令将X语言字符串翻译为Y语言字符串
  • dict映射到字典服务
  • wik映射到维基服务

1

再次强调,这只是个人建议,但我真的很希望看到Eggdrop用Python重写。

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

这将非常有助于使用Python而不是TCL脚本来构建易于IRC机器人功能的应用程序。


我也很有兴趣参与这样的项目,虽然不是 Python 专家,但很乐意帮忙。 - Chris

0

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


0

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

常见功能:

  • 从维基或谷歌进行搜索
  • 通知项目/问题更新的人员
  • 留言
  • 用于在频道中发送垃圾邮件
  • 选择一个主题
  • 对消息进行分类
  • 从频道日志中搜索

这些已经足够让你感到麻烦了。OP正在学习Python,如果您想要为不常用的协议实现客户端/服务器支持,了解如何在Python中使用套接字是至关重要的。 - Stian OK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接