Pergunta

Eu quero construir um bot que basicamente faz o seguinte:

  1. ouve o quarto e interage com os usuários e encoraja-os a PM do bot.
  2. Uma vez que um utilizador Pmed o bot se envolver com o cliente usando várias técnicas de IA.

Eu deveria usar a biblioteca IRC ou Sockets em python ou eu preciso mais de um quadro de bot.

O que você faria?

Obrigado!

Aqui está o código que estou usando atualmente, no entanto, não ter começado a trabalhar.

#!/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()
Foi útil?

Solução

Use torcida ou Asynchat se você quer ter um design sã. É possível fazê-lo apenas com soquetes, mas por que se preocupar fazê-lo a partir do zero?

Outras dicas

Se você quiser ter técnicas de IA envolvidos, então eu sugiro que você olhar para o href="http://pyaiml.sourceforge.net/" rel="noreferrer"> AIML pacote para Python. É a mesma tecnologia que bots ALICE são feitas em.

Se o que você quer é criar a parte AI, por que se preocupar escrever todo o código necessário para a conexão IRC por si mesmo?

Eu sugiro usar supybot , e simplesmente escrever o seu AI-código como um plugin para isso. Há documentação e lotes de exemplo código razoavelmente compreensível para encontrar. Além disso, ele vem com uma quantidade razoável de plugins para todos os tipos de usos que podem complementar a sua AI.

Como eu estou respondendo ~ 2 anos mais tarde, eu estou escrevendo isso apenas para Googlers :-P

Apenas tente meu 'Yet Another Bot IRC Useless' aqui https://github.com/julienpalard/yauib permitindo que você código de cada característica do seu bot usando a língua que desejar.

Eu fiz um (muito ruim, e por um longo tempo sendo reformulado) IRC bot usando irclib . A documentação é seguinte-à-nada, mas ele se livrar de fazer você tem que fazer tudo o que tomada de ligação e tal, que é uma coisa que eu realmente não quero lidar com eles. Para cada um o seu próprio, no entanto.

Use uma biblioteca existente IRC em vez de implementar o protocolo de si mesmo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top