mobirc
これなに?
ケータイからIRCのログみたりとか発言したりするための server。要するに keitairc みたいなもの。
特徴
- IRC をケータイ端末からみれます
- パケレスフィルタアリマス
- mIRC のカラーコードに対応
- プラガブルです(Plagger 的な意味で)
- SoftBank でも簡単ログインできます
- ドコモでもイカした見た目になります
- 全体的に見た目がイケてます
- Twitter 対応
- notice, public, join, leave などの各ステータスに応じて、スタイルシートをあてられます
- iso-2022-jp のみならず utf-8 を使えます。その他の大抵の文字コードにも対応してます。
なんで keitairc つかわないの?
keitairc は1ファイルでまとまっていて気軽に設置できるのがいいところです。
しかし、その一方1ファイルにいろいろつまっているためになにか変更して自分が使いやすいようにカスタマイズしようと思ったときに、目的の場所が見つかりにくく、hack しにくいという欠点を抱えています。
mobirc では「hack しやすさ」を大事にしています(性的な意味で)。
具体的にどのような変更を行った/ているのかというのは下記のとおり。
- App::Config のかわりに YAML を使う
- モジュールを本体から分離してある
- IRC の文字コードを指定可能(keitairc は iso-2022-jp 固定)
- Unicode::Japanese のかわりに Encode を使う
- 内部文字コードを flagged utf8 に固定
- HTML の生成を Template::Toolkit を使うようにした
- web server まわりのコードを Sledge っぽくした (これは個人的な趣味だがww ;-)
- グローバル変数のかわりに POE::Session の HEAP を使うようにした
- POE::Sugar::Args で POE のとっつきにくさを軽減(したつもり)
- ファイルの形でテンプレートを置いてあるので、mobirc を再起動しなくてもデザイン変更可能に
- MVC にもとづき V と C をきちんと分離してあるのでデザインだけをイジることができまうす
keitairc のコードをもとに、いろいろイジりながらつくってはいますが、モジュール化したり、V と C を分離したりしているうちに原型をとどめなくなっておりますので、diff をとって比較することはできません ;-)
ダウンロード
svn checkout http://svn.coderepos.org/share/lang/perl/mobirc/trunk/ mobirc
文字コード関連
ソフトウェアとしての性質上、IRC server へ iso-2022-jp/utf-8 で交信し、ケータイへは sjis/utf-8 で交信し、内部コードは flagged utf8 という変テコな構成になってます。
基本的には下記の項目のとおりに実装すれば問題ないはずです。
- 入口で decode, 出口で encode
- PoCo::IRC に yield するときは IRC 用文字コードに encode してから渡す
- TT には decode したものを渡す
- 内部に保持するデータはすべて flagged utf8
- URL にふくまれる multibyte 文字列は utf-8
ライセンス
mobirc は keitairc のコードをベースにしております。keitairc は GPLv2 なので、mobirc も GPLv2 です。
外部ソフト
Irssi使いの方はlang/perl/irssi/scripts/mobirc.plから利用出来ます。
