: O. Yuanying

WebIRC が iPhone 用 IRC クライアントとして最強な件

  • ただし自宅にサーバを持ってる人に限る
  • ただし Perl の使い方がわからなくて Ruby が好きな人に限る
  • ただしイケm、うそです、ごめんなさい。

IRChon はすぐクラッシュして落ちるからあまり使ってないし、 LimeChat は友達に買わせて自分で試してないのであまり参考にならないかもしれないけれどもw

今の iPhone 用の IRC クライアントは、バックグラウンドで動作することができないので、 アプリを終了している間のログは見ることできないですよね??

けど、iPhone を使っててずっと IRC クライアントだけ起動してて他のことをしないってありえなくて、 ブラウザでネットを見つつー、iPod で映画を見つつー、たまに IRC をチェックっていうのがほとんど。

これじゃ LimeChat や IRChon じゃだめなんですよ!

というわけで、そんなあなたにお勧めなのがこちら。 ブラウザベースの IRCクライアント、WebIRC。

ただ、いくつか問題がありまして、

  • 日本語 (ISO-2022-JP) が使えない。
  • デーモンとして起動すると IRC サーバへの接続がブロックされてしまう。
  • iPhone はとりあえずサポートしている程度。
    • 開発者は実機の iPhone でチェックしているとあまり思えない。
    • ホームスクリーンにブックマーク追加するときにアイコンがない。
    • iPhone 上からサーバやチャンネルに参加できない。
    • BASIC 認証しかサポートしておらず、iPhone だと毎回ログインしなければならない。
    • サポートしてないスタイルシートを利用している。(overflow: auto)

などなど。

というわけで、そのうちのいくつかの問題を解決したものがこちら。

iPhone からの使用イメージはこんな感じ。

webirc_iphone.jpg

インストール

依存ライブラリのインストールなど。

$ sudo gem install mongrel
$ sudo gem install sinatra
$ sudo gem install json

mongrel は別途 rack に対応するサーバなら何でも良いけれども、 passenger はお勧めしません。

WebIRC は IRC のログやサーバへの接続情報をインスタンス変数に確保するため、 passenger みたいにアクセスがないときにメモリをクリアしてしまうアーキテクチャとは相性が悪い模様。

WebIRC のインストール

$ git clone git://github.com/yuanying/WebIRC.git

以上!

設定

rackup で起動するために、適当な ru ファイルを書いてやる。

$ cd WebIRC
$ vim config.ru

WebIRC フォルダ内の config.ru はこんな感じ。

$: << File.dirname(__FILE__)

require 'rubygems'
require 'rack'
require 'sinatra'
require 'webserver'

run Sinatra::Application.new

また、サブディレクトリ、例えば '/webirc' 下で動かしたければ、 'run Sinatra::Application.new' の部分を以下のように変えてやれば良い。

map "/webirc" do
  run Sinatra::Application.new
end

起動

$ rackup -s mongrel -p 9292 -D config.ru

'-s' で利用するアプリケーションサーバ、'-p' でポートを指定する。

自動サービスとして登録

毎回 PC を起動するたびに rackup するなんて大変ですよね!

ってことで自動サービスとして登録してあげましょう。Windows は知りません。

Mac の場合

以下のようなファイルを作って、'/Library/LaunchDaemons/local.rackup.webirc.plist' として保存。

変数は適当に変更してください。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>GroupName</key>
        <string>staff</string>
        <key>Label</key>
        <string>local.rackup.webirc</string>
        <key>OnDemand</key>
        <false/>
        <key>ProgramArguments</key>
        <array>
                <string>/opt/local/bin/rackup</string>
                <string>-s</string>
                <string>mongrel</string>
                <string>-p</string>
                <string>9292</string>
                <string>-D</string>
                <string>/Users/Shared/Services/WebIRC/config.ru</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>UserName</key>
        <string>yuanying</string>
</dict>
</plist>

その後、

$ sudo launchctl load -w /Library/LaunchDaemons/local.rackup.webirc.plist

とすれば次回から自動で起動するようになります。

自動で起動するのを停めたい場合は以下のようなコマンドを発行すればおk。

$ sudo launchctl unload -w /Library/LaunchDaemons/local.rackup.webirc.plist

Linux の場合

Rackデーモンの起動スクリプトを書いてみる (やまかわのログ)」を参照!

注意

ちなみに、Perl 使いは、tiarra + mobirc という組み合わせがある模様。私は CPAN とかよーわからんので使いませんが。