2009-07-08 22 views
10

Quiero construir un robot que básicamente hace lo siguiente:IRC Bot Python: La mejor manera

  1. escucha a la habitación e interactúa con los usuarios y los alienta a PM el bot.
  2. Una vez que un usuario ha PMed el bot interactúa con el cliente utilizando varias técnicas de IA.

¿Debo simplemente usar la biblioteca de IRC o Sockets en python o necesito más de un framework bot.

¿Qué harías?

Gracias!

Aquí está el código que estoy usando, sin embargo, no lo he hecho funcionar.

#!/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

Estoy a punto de terminar un paquete de IRC para Python que podría ayudarlo. Lo tendré disponible aquí: http://ircutils.evanfosmark.com/ –

+0

¡Impresionante! ¡Gracias! ¡Lo tendré en cuenta! –

Respuesta

12

Use Twisted o Asynchat si desea tener un diseño sensato. Es posible hacerlo solo con tomas de corriente, pero ¿por qué molestarse en hacerlo desde cero?

+0

Acabo de ver Twisted nuevamente y lo encontré en la sección de IM. Gracias por el enlace. ¿Con qué ayuda exactamente el Asynchat? –

+0

Código de red. – Unknown

7

Si usted quiere tener las técnicas de IA involucrados, entonces yo sugiero que busque en el paquete AIML para Python. Es la misma tecnología en la que se realizan los bots de ALICE.

+1

¡Gracias por los avisos en el paquete AIML! –

2

Hice un (muy malo, y durante mucho tiempo siendo refactorizado) IRC bot usando irclib. La documentación es casi inútil, pero se deshace de hacer que tengas que hacer todo ese zócalo de conexión y eso, que es algo con lo que realmente no quiero lidiar. A cada cual, lo suyo.

2

Utilice una biblioteca de IRC existente en lugar de implementar el protocolo usted mismo.

5

Si lo que quieres es crear la parte AI, ¿por qué molestarse en escribir todo el código necesario para la conexión IRC por ti mismo?

Sugiero usar SupyBot, y simplemente escriba su código AI como un complemento para ello. Existe documentación razonablemente comprensible y muchos códigos de ejemplo para encontrar. Además, viene con una cantidad decente de complementos para todo tipo de usos que podrían complementar tu IA.

3

Como estoy respondiendo ~ 2 años más tarde, estoy escribiendo esto sólo para los empleados de Google :-P

Solo trata de mi 'Sin embargo, otro Bot de IRC Inútil' aquí https://github.com/julienpalard/yauib lo que le permite codificar cada rasgo de su robot usando el lenguaje que quieras.

Cuestiones relacionadas