Version 6 (modified by topia, 6 years ago)

fix typo

mobirc

これなに?

ケータイからIRCのログみたりとか発言したりするための server。要するに keitairc みたいなもの。

なんで keitairc つかわないの?

keitairc は1ファイルでまとまっていて気軽に設置できるのがいいところです。

しかし、その一方1ファイルにいろいろつまっているためになにか変更して自分が使いやすいようにカスタマイズしようと思ったときに、目的の場所が見つかりにくく、hack しにくいという欠点を抱えています。

mobirc では「hack しやすさ」を大事にしています(性的な意味で)。

具体的にどのような変更を行った/ているのかというのは下記のとおり。

  • App::Config のかわりに YAML を使う
  • モジュールを本体から分離したる
  • irc の文字コードを指定可能(keitairc は iso-2022-jp 固定)
  • Unicode::Japanese のかわりに Encode を使う
  • 内部文字コードを flagged utf8 に固定
  • HTML の生成を Template-Tookit を使うようにした
  • web server まわりのコードを Sledge っぽくした (これは個人的な趣味だがww ;-)
  • グローバル変数のかわりに POE::Session の HEAP を使うようにした
  • POE::Sugar::Args で POE のとっつきにくさを軽減(したつもり)
  • ファイルの形でテンプレートを置いてあるので、keitairc を再起動しなくてもデザイン変更可能に
  • MVC にもとづき V と C をきちんと分離してあるのでデザインだけをイジることができまうす

keitairc のコードをもとに、いろいろイジりながらつくってはいますが、モジュール化したり、V と C を分離したりしているうちに原型をとどめなくなっておりますので、diff をとって比較することはできません ;-)

ダウンロード

svn checkout http://svn.coderepos.org/share/lang/perl/mobirc/trunk/mobirc/

文字コード関連

ソフトウェアとしての性質上、irc server へ iso-2022-jp/utf8 で交信し、ケータイへは sjis/utf8 で交信し、内部コードは flagged utf8 という変テコな構成になってます。

基本的には下記の項目のとおりに実装すれば問題ないはずです。

  • 入口で decode, 出口で encode
  • PoCo::IRC に yield するときは irc 用文字コードに encode してから渡す
  • TT には decode したものを渡す
  • 内部に保持するデータはすべて flagged utf8
  • URL にふくまれる multibyte 文字列は utf8

機能面での追加事項

  • notice, public, join, leave などの各ステータスに応じて、スタイルシートをあてられます
  • utf8 を使えるようになってるのと、基本的にどんな encoding にも対応している予定です。

ライセンス

mobirc は keitairc のコードをベースにしております。keitairc は GPLv2 なので、mobirc も GPLv2 です。