2009-07-08 34 views
10

我想建立一个机器人基本上执行以下操作:IRC的Python博特:最好的方法

  1. 监听房间,并与用户进行交互,并鼓励他们向PM机器人。
  2. 一旦用户PMED机器人从事使用各种人工智能技术的客户端。

我应该在Python中使用IRC库还是套接字,还是需要更多的bot框架?

你会怎么做?

谢谢!

这是我目前使用的代码,但是,我还没有得到它的工作。

#!/usr/bin/python 
import socket 
network = 'holmes.freenet.net' 
port = 6667 
irc = socket.socket (socket.AF_INET, socket.SOCK_STREAM) 
irc.connect ((network, port)) 
irc.send ('NICK PyIRC\r\n') 
irc.send ('USER PyIRC PyIRC PyIRC :Python IRC\r\n') 
irc.send ('JOIN #pyirc\r\n') 
irc.send ('PRIVMSG #pyirc :Can you hear me?\r\n') 
irc.send ('PART #pyirc\r\n') 
irc.send ('QUIT\r\n') 
irc.close() 
+2

我即将完成一个IRC包为Python这也许能帮助你。我会在这里提供它:http://ircutils.evanfosmark.com/ – 2009-07-22 07:42:13

+0

太棒了!谢谢!我会牢记这一点! – 2009-07-22 14:05:01

回答

12

使用TwistedAsynchat如果你想有一个理智的设计。有可能只是用套接字来做,但为什么还要从头开始呢?

7

如果你想拥有人工智能技术介入,那么我建议你看看AIML包为Python。这是Alice的机器人在做同样的技术。

+1

感谢AIML包装上的领导! – 2009-07-08 22:34:27

2

我做了一个(非常糟糕,很长一段时间被重构)IRC bot使用irclib。该文件是下一个要什么,但它摆脱让你不得不做的一切,插座和连接等,这是东西,我真的不希望处理的。尽管如此,他还是各自为战。

2

使用现有的IRC库,而不是实现自己的协议。

5

如果你想要创建AI部分,为什么还要自己编写IRC连接所需的所有代码?

我建议使用SupyBot,并简单地将您的AI代码编写为插件。有合理的理解文档和大量的示例代码可供查找。此外,它还有适合各种用途的插件,可以补充您的AI。

3

正如我回答〜2年后,我写这篇文章只是让Google :-P

试试看我的“然而,另一个无用IRC bot的”在这里https://github.com/julienpalard/yauib允许您编写你的机器人的每个功能使用任何你想要的语言。