4

私たちの会社では、クライアントのウェブサイトがまだ稼働しているかどうかをチェックする Python ベースの IRC ボットが必要です。より具体的には、たとえば 15 分ごとにアクセスする必要がある URL の数をリストしたいと考えています。失敗した場合は、5 分後に URL を再度確認する必要があります。URL を取得しても HTTP ステータス コード 200 が返されない場合は、調査できるように、失敗した URL をチャネルにエコーする必要があります。

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

新しい要件に合わせて、Supybot 用のより優れたプラグインを作成する必要がありますか、それともまったく別のプラグインを使用する必要がありますか? ゼロから始める必要がありますか (最も多くを学び、関連する RFCを自分で実装し、計画よりも多くの時間を費やします)、それとも基本的な IRC を処理する適切なフレームワークがありますか?

4

5 に答える 5

4

Supybot の完全に新しいプラグインに投票します。もっと詳しく知る ;)

それほど多くのことをしない場合は、python irclibを試してください。これは、IRC 用の (まだ維持されている) python lib です。

ツイストもいいかもしれませんが、少し多すぎます...

于 2009-06-30T12:49:25.327 に答える
3

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

于 2009-06-30T12:48:53.287 に答える
2

私は最終的に自分のボットにTwistedを使用することにしました。理由について:

  • Supybotにはすでに多くの機能があります。シンプルなプラグインを作成して接続し、ボットの使用を開始するだけです。欠点は、すでに提供されている機能の一部が気に入らない場合があることです。例として: 私はそれがすべてに応答するという事実が好きではありませんでした (エラー: "foo" は有効なコマンドではありません.)。どこかでオフにできると思いますが、こういう細かいところが気になりました。

  • 一方、 Python IRC クライアント ライブラリは、少し単純すぎると感じました。特に、チャネルで応答性を維持しながら、多くの Web サイトがまだ生きているかどうかをボットにチェックさせるためにスレッド化が必要だったので.

  • irclib のレベルが低すぎると感じた場合、ゼロからボットを作成するのは間違いなく低レベルです。私は間違いなく何かを学びたいと思っていましたが、「基本的な」ものにあまり悩まされることなく、ボットの実際の機能に焦点を当てたいと思っていました (たとえば、ボットを識別するためのコードを書きたいとは限りません。ニックネームとパスワードを保存し、これを処理するための構成設定が必要です。)

Twisted には、出発点として使用できるロギング ボットの良い例があります。さらに、将来的には、ボットの出力を表示するための小さな Web サーバーを (明らかに Twisted を使用して) 作成することはそれほど難しくありません。

ヒント: Twisted のドキュメントに加えて、Python Magazine の 2008 年 10 月号で、Doug Farrell による記事「A Twisted Logging Server」を参照することもできます。

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

于 2009-07-15T07:29:39.663 に答える
1

単純な IRC ボットを作成することはそれほど難しくありません。ボットに使用し続けているテンプレートがあります。これは、SVN ボットから投票ステータス ボット、特定の IP への接続をチェックし、結果に応じてチャネルのトピックを変更するボットにまで及びます。

必要に応じてソースを共有できますが、自分で書くのに勝るものはありません :)

于 2009-06-30T13:33:44.443 に答える
1

irc3 は、asyncio と venusian に基づくプラグ可能な irc クライアント ライブラリですhttps://irc3.readthedocs.org/

于 2014-05-31T10:36:14.150 に答える