2009-06-30 7 views
4

私たちは、私たちのクライアントのウェブサイトがまだ起動しているかどうかをチェックするPythonベースのIRCボットを持っていたいと思います。具体的には:15分ごとに訪問する必要があるURLの番号を列挙する。失敗した場合は、5分後にURLを再度確認する必要があります。 URLを取得してもHTTPステータスコード200が返されない場合は、問題のURLを調査して問題のURLを調査する必要があります。Python IRCクライアント:既存のフレームワークのためのプラグインを一から書き込むか書くか?

しばらく前にSupybotのプラグインを作成しましたが、これは基本的に上記のいくつかを原型でも効果的な方法で実行します。現在のコードの機能を上記の「仕様」に拡張したいのであれば、いくつかの大きなリファクタリングを行う必要があります。基本的にはゼロから始めることを意味します。

これは疑問を提起します:私はSupybotのためのより良いプラグインを書いて、新しい要件に合っているのか、それとも全く別のものに行くべきですか?私は最初から始めなければならないでしょうか(自分でrelevant RFCsを実装し、計画以上の時間を費やして実装するか)、基本的なIRCの処理に適したフレームワークはありますか?

答えて

4

私はSupybotのための全く新しいプラグインに投票します。さらに詳しく;)

python irclibを試してみてください。それはIRC用の(まだ維持されている)Pythonのlibです。

TwistedもOKかもしれませんが、それは少しですが、あまりにも多くの...

3

私にとっては、IRCと話したいアプリケーションのように思えます。私の嫌な反応は、IRCクライアントを持つTwistedを使用することです。これはあなたにとって適切な解決策であるかもしれないし、そうでないかもしれないが、少なくとも調査する価値がある。

1

は、単純なIRCボットを書くことは難しいことではありません。 SVNのボットから投票ステータスのボットまで、特定のIPへの接続をチェックし、その結果に応じてチャンネルのトピックを変更するボットまで、ボットのために使用しているテンプレートがあります。あなたがしたい場合、私はようやく私のボットのために使用Twistedを作成することを決めた

+0

に基づいてプラグ可能なIRCクライアントライブラリです。私が立ち往生した場合、私はこのオファーについてあなたに戻ってくるかもしれません。 :) –

2

あなた自身:)を書くような何もないのに

私は、ソースを共有することができます。理由について:

  • Supybotについては、すでに多くの機能があります。それは良いことかもしれません:単純なプラグインを作成して接続し、ボットを使い始めるだけです。欠点は、すでに提供されている機能の一部が気に入らないことです。例として、私はすべてに応答したという事実は気に入らなかった(エラー: "foo"は有効なコマンドではない)。どういうわけかどこかで電源を切ることができると確信していますが、このような小さなものが私を悩ませました。

  • Python IRC client library一方、あまりにも裸の骨を感じた。特にボットチェックにチャンネルの応答性を保ちながら多くのウェブサイトがまだ生存しているかどうかをチェックするスレッドが必要だったためです。

  • irclibのレベルが低すぎると感じた場合は、ボットをゼロから作成するのは間違いありません。私は何かを学びたいと思っていましたが、私はボットの実際の機能に焦点を当てたいと思っていました。ニックネームとパスワードを保存して、これを私のために処理するための設定をしたいのです。)

Twistedには、開始点として使用できるlogging botという素晴らしい例があります。さらに、将来的には、ボットの出力を表示するために小さなウェブサーバー(Twistedを使用すること)を書くのは難しいことではありません。

ヒント:Twisted documentationのほかに、Doug Farrellの記事「A Twisted Logging Server」のOctober 2008 issue of Python Magazineをご覧ください。

質問に答えた人に感謝します。あなたは正しい軌道に乗っています。 :)

1

IRC3は、私はおそらくirclibに基づいて、今、私自身のボットを作成することを考えているasyncioと金星https://irc3.readthedocs.org/

関連する問題