PythonIRC客户端:从头开始编写还是为现有框架编写插件?

PythonIRC客户端:从头开始编写还是为现有框架编写插件?,python,irc,Python,Irc,对于我们公司,我希望有一个基于Python的IRC bot,用于检查我们客户的网站是否仍在运行。更具体地说:我想列出一些应该每15分钟访问一次的URL。如果失败,应在5分钟后再次检查URL。如果检索URL仍然没有导致HTTP状态代码200,它应该在通道中回显失败的URL,以便我们可以对其进行调查 我在一段时间前写了一个插件,它基本上以一种粗糙但有效的方式完成了上面的一些工作。如果我想将当前代码的功能扩展到上述“规范”,我需要进行一些主要的重构;基本上,这意味着从头开始 这就提出了一个问题:我应该

对于我们公司,我希望有一个基于Python的IRC bot,用于检查我们客户的网站是否仍在运行。更具体地说:我想列出一些应该每15分钟访问一次的URL。如果失败,应在5分钟后再次检查URL。如果检索URL仍然没有导致HTTP状态代码200,它应该在通道中回显失败的URL,以便我们可以对其进行调查

我在一段时间前写了一个插件,它基本上以一种粗糙但有效的方式完成了上面的一些工作。如果我想将当前代码的功能扩展到上述“规范”,我需要进行一些主要的重构;基本上,这意味着从头开始


这就提出了一个问题:我应该为Supybot编写一个更好的插件,以满足新的需求,还是完全去做其他事情?我应该从头开始(学习最多,自己实现,花费比计划更多的时间)还是有一个合适的框架来处理基本的IRC内容?

对我来说,这听起来像是你的应用程序想要谈论IRC,我本能的反应是使用Twisted,它有IRC客户端。这可能对你来说是正确的解决方案,也可能不是,但至少值得研究。

我投票支持一个全新的Supybot插件。了解更多;)

如果您不想做这么多,请尝试python。它是用于IRC的python库(仍在维护中)


也许还可以,但是有点太多了…

编写一个简单的IRC机器人并不是那么难。我有一个用于我的机器人程序的模板,范围从SVN机器人程序到投票状态机器人程序,再到检查特定IP连接并根据结果更改频道主题的机器人程序


如果您愿意,我可以共享源代码,不过没有什么比编写您自己的源代码更好的了:)

我终于决定为我的机器人创建使用。至于原因:

  • 已经有很多功能了。这可能是一件好事:只需创建一个简单的插件,连接它并开始使用机器人。缺点是您可能不喜欢已经提供的一些功能。举个例子:我不喜欢它响应所有的事情(错误:“foo”不是一个有效的命令)。我相信它可以在某个地方关闭,但这些小事情困扰着我

  • 另一方面,他觉得自己的骨头有点裸露。特别是因为我需要线程来让机器人检查一些网站是否仍然存在,同时保持频道的响应

  • 如果irclib感觉级别太低,那么从头开始编写bot肯定会很困难。虽然我确实想学习一些东西,但我也希望专注于机器人的实际功能,而不必为“基本”的东西操心太多(例如,我不一定要编写代码来识别机器人,我只希望有一些配置设置来存储昵称和密码,并为我处理这些。)

Twisted有一个很好的示例,可以将其用作起点。此外:将来编写一个小型Web服务器(使用Twisted)来显示bot的输出应该不会太难

提示:除此之外,您还可以查看DougFarrell的文章“TwistedLoggingServer”


感谢那些回答这个问题的人。你让我走上了正确的道路

irc3是一个基于asyncio和金星的可插拔irc客户端库

我现在正在考虑创建自己的机器人,可能是基于irclib的。如果我陷入困境,我可能会就此报价与您联系。:)