QuickIRC2 取扱説明書

概要

QuickIRC2はWebブラウザから直接実行できるIRCクライアントです。

通信と文字コード変換にはFlashコンポーネントを使用しています。

ブラウザ上のIRCクライアントですが、IRCの接続はユーザのPCから直接行われます。

最近の事情

特徴

QuickIRC2はJavaScriptとFlashの両方を使っています。 UI部分は通常のWebページと同じセキュリティモデルで動作するため、予想外の動作をする可能性が格段に下がりました。 通信と文字コード変換と効果音出力はFlashコンポーネントから行い、格段に初期化と応答性が向上しました。前作のQuickIRC1ではJavaAppletを使っていたため、ブラウザによってはかなり動作の安定性に問題がありました。

Look&Feelは日本の主なIRCクライアントに意図的に似せており、IRCクライアント使用者とQuickIRC2使用者の間の違和感が減るようにしました。

CTCPはACTIONと文字装飾を表示可能です。ただし文字装飾の入力はサポートしていません。

通常Webページと同じセキュリティモデルで動作するため、会話ログの保存などはサポートしていません。

ライセンス

Artistic Licenseです。 配布パッケージに含まれる全部または一部を変更して再配布する場合、原版と同名を名乗ることができません。

動作環境

クライアント環境は、Windows XP SP2のIE6とFirefox2で動作確認を行っています。

Webサーバでは動的コンテンツを動かす必要はありません。qi2は HTMLドキュメント、CSSスタイルシート、JavaScriptスクリプト、PNGイメージ、MP3サウンドだけから構成されています。

ただし、チャンネル一覧機能はlistbot.xmlを同じWebサイトからダウンロードできる場合のみ動作します。

IRCサーバは同一ホストのポート80でHTTPサーバを動かし、ドキュメントルートにcrossdomain.xmlを置く必要があります。

ダウンロード

ダウンロードはSourceForge.jpからどうぞ。

設置方法

ファイルを全部コピーして、SiteSetting.js の function SiteSetting() の内容をサイトにあわせて修正します。スクリプトや設定ファイルの文字コードは全てUTF-8です。

function SiteSetting(){
	// AppNode.addSound("OnConnect"   ,"se/connect.wav.mp3","接続開始");
	// AppNode.addSound("PRIVMSG"     ,"se/speak.wav.mp3"  ,"メッセージ");
	// AppNode.addSound("OnMyselfJoin","se/whojoin.wav.mp3","チャンネル参加");
	// AppNode.addSound("OnMyselfPart","se/whopart.wav.mp3","チャンネル退出");

	var conn_node = createConnectionNode("2chIRC","2chIRC",$('ConnectionSettings') );
	conn_node.setCharset("ISO-2022-JP-IRC");
	conn_node.addServer("2chIRC 2鯖","irc2.2ch.net",6667,"http://irc2.2ch.net/crossdomain.xml",false);
	conn_node.addServer("2chIRC 3鯖","irc.juggler.jp",6667,"http://irc.juggler.jp/crossdomain.xml",true);
	conn_node.chanlist_url = "http://tate.undef.jp/qi2/listbot.xml";
	BufferList_selectNode(conn_node);

	return conn_node;
}

この例では、

、といった処理を行っています。

効果音データの指定

ライセンス上の理由からデータを同梱していませんが、QuickIRC2は効果音を出力する機能があります。 効果音は項目ごとにユーザがON|OFFを設定できます。 サイト別設定では項目ごとに効果音データのURLや設定画面のキャプションを指定可能です。

文字コードの指定

文字コードについては、ActionScript3で使えるものの他に、"ISO-2022-JP-IRC"を指定できます。このエンコーディングでは半角かなの使用やJIS X 0208の120区の使用などが可能です。

crossdomain.xml

複数のIRCサーバを指定する場合、接続先のサーバのWebのドキュメントルートにcrossdomain.xmlを置く必要があります。内容は次のようなものです。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from secure="true" to-ports="6667" domain="tate.undef.jp" />
    <allow-access-from secure="true" to-ports="6667" domain="juggler.jp" />
    <allow-access-from secure="true" to-ports="6667" domain="irc.2ch.net" />
    <allow-access-from secure="true" to-ports="6667" domain="irc2.2ch.net" />
</cross-domain-policy>

チャンネル一覧

conn_node.chanlist_url の設定により、ユーザが随時チャンネル一覧をロードすることができます。 Flashのセキュリティポリシーにより、URLはQuickIRCを設置したのと同じWebサーバを指している必要があります。 チャンネル一覧XMLのフォーマットについては後述します。

デフォルトのサーバノードを返す

サイト別設定関数の最後で、return文のパラメータにデフォルトのサーバノードを指定してください。

listbot.xmlのフォーマット

XMLファイルの内容は次のようなものです。

<?xml version="1.0"?>
<list>
<channel active="0" users="2" name="#対馬" short="#対馬" sort="対馬" topic=" "/>
<channel active="10" users="33" name="#サッカー" short="#サッカー" sort="サッカー" topic="22日(水)18:30からA代表vsカメルーン、20:30から五輪予選ベトナム、深夜のU-17W杯ナイジェリア戦もあるよ"/>
<channel active="0" users="3" name="#コンビーフたん" short="#コンビーフたん" sort="コンビーフたん" topic="み て ご ら ん"/>
<channel active="0" users="97" name="#ビギナー" short="#ビギナー" sort="ビギナー" topic="☆まずはここから始めよう☆ 挨拶推奨。初心者さんがジョインしたら優しくお迎え♪ エロ・グロ・ナンパはダメですよ"/>
<channel active="0" users="39" name="#アニメ実況" short="#アニメ実況" sort="アニメ実況" topic="アニメ番組を実況しよう!(たまにモータースポーツ談義・実況もやってます)"/>
<info channels="1299" non_public_channels="979" public_channels="320" skip="0" updatestr="2007/08/28 01:22:49" users="2227"/>
</list>

listタグの下にchannelタグが並び、それらは次の属性を持ちます。

active
チャンネルの単位時間あたりの発言量(正の整数)
name
チャンネルの長い名前。例: !YFHJOAbc日本語
short
チャンネルの短い名前。例: !Abc日本語
short
チャンネルのソート用の文字列。例: abc日本語
topic
チャンネルのトピック文字列

infoタグはサーバ全体の統計情報を示します。

作者

QuickIRC2はtateisu@juggler.jp が作成しました。

アイコン画像の一部をはnakkaさんのWoolChatから借りました。

接続が切れた時のアイコンはCarolinaさんが少し分かりやすくしてくれました。

謝辞

前作のQuickIRC version 1を事実上のがらくたにしてしまったJavaアプレット関連事情の変化について、次の通りSunに謝辞を述べさせていただきます。 Sunは、Javaアプレットのエコシステムを保守しきれず多くのJavaアプレットの寿命を終わらせた者であるから、彼らの責任は当然、死に値する。 従って、Sunは腹を切って死ぬべきである。 また、Sunはただ死んで終わるものではない。 彼らは無責任な悪人であり、唯一神又吉イエスが地獄の火の中に投げ込む者達である。 Sunを支持する有権者も彼らと同様に腹を切って死ぬべきは当然であり、また、唯一神又吉イエスがそういう有権者を当然、地獄の火の中に投げ込むものである。

Flashを積極的に普及させ、またFlex 2 SDKを無償で公開しているAdobe Systems Incorporated.に感謝します。

痒いところに手が届くJavaScriptライブラリ MochiKit を作成、公開している Mochi Media, Inc. に感謝します。

複数サーバ接続について、各種テストに協力してくれた2chIRCサーバOPに感謝します。

テストに協力してくれたり頻繁な再接続を見逃してくれたりした2chIRCの方々に感謝します。