« OS X 10.7(Lion)でTracのプラグインのライフサイクルを調べてみた | メイン | 開いたStreamを安全に閉じる仕組みを作ってみた(Java6向け) »

TraChat - Tracにチャット機能を追加するプラグイン(WebSocket使用)

TracとIRC等のチャットと連携させる方法はあるけど、Trac上で直接チャットする方法がなかったので作ってみた。
名前は「TraChat」。
コードはGitHubに公開してある。
目的
「Trac上でチャットをしたい。」
「WebSocketを使ったTracプラグインを作りたい。」
WebSocketに対応していないブラウザでは使えないけど、IEも次のバージョンで対応するから良いよね?
インストール方法
内部で「mod_pywebsocket」を使っているのでまず「mod_pywebsocket」をインストール。
% svn checkout http://pywebsocket.googlecode.com/svn/trunk/ pywebsocket-read-only
% cd pywebsocket-read-only/src
% python setup.py build
% sudo python setup.py install
次に、「TraChat」をダウンロードしてeggを作成。
% git clone https://github.com/Kanasansoft/TraChat.git
% cd TraChat
% python setup.py bdist_egg
「dist」というディレクトリが作成され、中にeggファイルができているので、これをTracのプラグインディレクトリに複製する。
どうもコンパイル環境によって名前が違うらしいので注意。
手元の環境では「TraChat-0.1-py2.7.egg」という名前になった。
% cp dist/TraChat*.egg [Tracのプラグインディレクトリ]
「trac.ini」の「components」セクションに次の記述を追加。ない場合は「components」セクションを新規に追加。
[components]
trachat.* = enabled
TraChat内のWebSocketサーバが使うボート番号を指定するには、「trachat」セクションを追加して、次のように「port」を指定する。
指定がない場合は、8081番が使われる。
Tracが使っているポート番号と同じにできないので注意。
[trachat]
port = 8000
後は、Tracを再起動するだけ。
チャットルームは、Tracのプロジェクト単位で作成される。
出来ない事
Tracのログイン名をチャットの発言者に指定したかったけどスキル不足で断念。
Tracのタイムラインを流し込みたかったけどスキル不足で断念。
Tracのデータベースに発言を保存したかったがスキル不足で断念。
問題点
WebSocketサーバをTracプラグインから起動するために、「mod_pywebsocket」のプライベートメソッドを直接呼び出すという愚行を...。
感想
Python初心者にTracのプラグイン作成は難易度高い...。
Python初心者に「mod_pywebsocket」は難易度高い...。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

Google

タグ クラウド