2009-07-08 15 views
10

私は基本的に以下のことを行いボットを構築したい:IRCボットのPython:ベストウェイ

  1. は部屋に待機し、ユーザーと相互作用し、PMにボットを、それらを奨励しています。
  2. ユーザーがボットをPMEDた後は、さまざまなAI技術を使用してクライアントと係合します。

私はちょうどpythonでIRCライブラリやソケットを使うべきですか、それとももっとボットフレームワークを必要としますか?

あなたは何をしますか?

ありがとうございます!ここで

は、私が現在使用しているコードは、しかし、私は仕事にそれをもらっていないです。

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

私はあなたを助けることができるかもしれないPython用IRCパッケージを仕上げに近いです。私はそれをここで利用できるようにする:http://ircutils.evanfosmark.com/ –

+0

恐ろしい!ありがとう!私はこれを念頭に置いておこう! –

答えて

12

気分が良いデザインをしたい場合は、TwistedまたはAsynchatを使用してください。それはソケットで行うことができますが、なぜゼロから行うのはなぜですか?

+0

もう一度Twistedをチェックアウトし、IMセクションの下で見つけました。リンクありがとう。 Asynchatは何を正確にサポートしていますか? –

+0

ネットワークコード。 – Unknown

7

あなたがAI技術が関与したい場合は、私はあなたがPython用AIMLパッケージで見てください。 ALICEボットが行われているのと同じ技術です。

+1

AIMLパッケージのヘッドアップに感謝します! –

2

IRC botを使用して(非常に冗長で、リファクタリングされています)irclibを使用しました。ドキュメンテーションはなんでもありませんが、実際には扱いたくないことですが、接続しているすべてのソケットを処理する必要がなくなります。しかし、彼自身に、それぞれ。

2

は、プロトコルを自分で実装するのではなく、既存のIRCライブラリを使用してください。

5

何をしたい場合は、AI部分を作成することですなぜ自分でIRCの接続に必要なすべてのコードを書いてわざわざ?

私はSupyBotを使用することをお勧めし、単にそれのためのプラグインとしてごAI-コードを記述します。合理的に理解できる文書と見つかるサンプルコードがたくさんあります。また、それはあなたのAIを補完するかもしれないあらゆる種類のプラグインのまともな量が付属しています。

3

私は2年後、私はちょうどあなたのボットの各機能をコーディングすることができ許可ここhttps://github.com/julienpalard/yauibを私の「もう一つの無駄なIRCボット」を試すだけのGoogler :-P

のためにこれを書いている〜を返信していたようあなたが望む言語を使用してください。

関連する問題