2009-07-08 37 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允許您編寫你的機器人的每個功能使用任何你想要的語言。