Wall Pailer

1. はじめに

Wall Pailer(WPail)とは、個人的な実験を目的にしたソフトウェアである。 WPailは、各チャットプロトコルを抽象化した単純な入出力に変換することで、 チャットソフトウェア間の相互接続を目的とし開発されたソフトウェアである。 コマンドは、 IRC(Internet Relay Chat)クライアントをモデルに設計され、 親しみ易さとIRCへの相互乗り入れを容易にしようと考えている。 実行され、そのプログラム自身も会話が可能になる。 Javaにより開発されたこともあり、各クライアントのプラットホームに依存せずに 会話が可能になる。 各チャットサーバへの接続で、専用クライアント以外の方法があれば、 単に専用である優位性以外は、なにも残らない。 各チャットサーバに接続し、その入出力を抽象化しPailingするエージェントとして 実行され、単一サーバとの接続だけでもオープンチャットとして機能する。 WEBサーバから、会話のログ、リアルタイムな参加者リストの閲覧を 可能にすることもできる。

なお、WEBサーバとの乗り入れはWPailの入力と出力をスクリプトで整形し、 CGIがその機能をドライブしているだけのことである。 実現方法については、他に譲る。 「Welcome!」では、cronと連動し、unix版のtodayを起動しTOPICを変更している。 また、"/image"コマンド、WEBとの連動を意識した唯一の依存コマンドであり、 単にWPailは、その入力をトランスペアレントに出力のログとしている。

WPailは起動画面のコンソールから"/quit"を入力すると終了する。 システムオペレータ権を持っていれば、コンソール以外でも可能である。

WPailは、視野の範囲にあるアバタのハンドルを"/here"として報告する。 が、今回は出現位置の指定が不可であり、その報告はしない。

管理情報を次回に引き継ぎたい場合は、出力ログを集計して、次回の起動時に WPailに対してコマンドを出して、前回の状態を復元する。 WPailは、ファイル等を利用して管理情報、設定情報を管理していない。

2. オープンチャット機能

WPailは、サーバに接続することにより、IRCで言うところのチャネルのように 機能する。WPailでは、サーバに接続されたエージェントの単位をチャネルと 呼ぶことにする。 会話の先頭が"/"なものをコマンドとして解釈し、それ以外を通常の会話とする。 また、コマンドにハンドル、メッセージ等のパラメタが必要な場合、その区切り 文字は半角の" "(スペース)とする。 各サーバにより入出力が異なり、例えばWC/J2などのACE系では、秘話が唯一の WPailへのアクセス方法である。 以降に、各コマンドの機能を、その秘話で行うことを前提に説明する。 また、秘話は「TAB」で行うことで、煩わしさが軽減される。

2.1 チャネルへの参加 - /join

 ペンクラ:/join

とすることで「ペンクラ」のチャネルに参加できる。 参加に成功すると、そのチャネルのトピックスが表示される。 以降の会話は、ペンクラに秘話を行うと参加者全てに同報通知される。 会話は、以下のように通知される。

 {ペンクラ --> 自分} <発言者> 会話内容

また、発言者がいない場合は、チャネルからの直接会話である。

2.2 チャネルから退出 - /part

 ペンクラ:/part

とすることで「ペンクラ」のチャネルから脱退する。 以降、「ペンクラ」からの会話は聞けなくなる。

3.3 チャネルから一時退出 - /away

 ペンクラ:/away

とすることで、チャネルからの一時退出を行う。 チャネルからの会話は聞こえなくなるが、参加者一覧に不在として残る。 一時的に会話を止めたいが、参加者リストからは消えたくない場合に使用する。 また、会話することで"/join"した参加状態に戻る。

3.4 チャネルへの出席 - /pres

 ペンクラ:/pres

とすることで、チャネルへ出席を通知する。 いわゆる出席で、"/join"して"/away"した状態になり、参加者一覧に不在として残る。 誰がサーバにアクセスしてるか知りたい、知らせたい場合に有効である。 チャネルに参加する場合は、会話を始めると"/join"した参加状態になる。

2.5 インフォメーションの設定 - /info

 ペンクラ:/info [近況などメッセージ]

とすることで、"/who"表示のインフォメーションを変更する。 パラメタ無しで行うと、現在の設定が表示される。 また、何も設定が無い場合は、"/join", "/invite"した時刻が表示される。

2.6 参加者リスト - /who

 ペンクラ:/who

とすることで、「ペンクラ」のチャネルへの参加者リストが表示される。 形式は以下の通りである。

 {ペンクラ --> 自分} _H 参加者 インフォメーション

インフォメーションは、後で説明する"/info"コマンドで設定する。 _Hは参加者の属性を示している。

 

H 参加者  
G 不在者

_ 属性無し(通常)  
@ チャネルオペレータ  
* システムオペレータ

2.7 チャネルへの招待 - /invite

 ペンクラ:/invite 招待者 [... 招待者]

とすることで、指定したハンドルのものをチャネルに招待できる。(複数指定可能) 招待者には、"/join"と同様にトピックスが送られる。 この機能は、後で説明する"/oper"にてチャネルオペーレタ権を得たものだけが 行える。

2.8 チャネルからの強制退出 - /kick

 ペンクラ:/kick 退出者 [... 退出者]

っとすることで、指定したハンドルのものをチャネルから強制退出させられる。 (複数指定可能) この機能は、後で説明する"/oper"にてチャネルオペーレタ権を得たものだけが 行える。

2.9 トピックスの設定 - /topic

 ペンクラ:/topic [チャネルの表題、グループ名など]

とすることで、"/join", "/invite"したときに表示されるチャネルトピックスを 変更する。 この機能は、後で説明する"/oper"にてチャネルオペーレタ権を得たものだけが 行える。

2.10 チャネルアクセス権の剥奪 - /kill

 ペンクラ:/kill 剥奪者 [... 剥奪者]

とすることで、チャネルへのアクセス権を剥奪する。 これにより、"/join"を含めた全てのコマンドの実行が不可能になる。 また、アクセス権剥奪者は、WPailが再起動するまで、アクセス権は完全に 与えられない。 この機能は、後で説明する"/oper"にてチャネルオペーレタ権を得たものだけが 行える。

2.11 画像の張り付け - /image

 ペンクラ:/image URL

とすることで、会話ログに画像を張り付けることができる。 URLは、"http://"で始まる絶対パスを記述する必要がある。 URLが不当であるかの判断はしていないので、 誤ったURLもそのまま会話ログに記録される。 この機能は、後で説明する"/oper"にてチャネルオペーレタ権を得たものだけが 行える。

2.12 チャネルモードの変更 - /mode

 ペンクラ:/mode [+w | -w]

とすることで、チャネルモードを変更することができる。 このモード変更は、チャネルオペレータは制限を受けない。 変更可能なモードは以下のとおりである。

 

+w 書き込み可能  
-w 書き込み不可

現在では、書き込みモードのみ変更可能とし、 読み出しに関するモードの変更はできない。 この機能は、後で説明する"/oper"にてチャネルオペーレタ権を得たものだけが 行える。

2.13 チャネルオペレータ権の譲渡 - /oper

 ペンクラ:/oper オペレータ [... オペレータ]

とすることで、チャネルオペレータ権を譲渡する。この権利を得たものは、 "/invite"を含めた、コマンドの実行が可能になる。 チャネルオペレータ権があるものだけが、チャネルオペレータ権を譲渡できる。 最初のチャネルオペレータ権を持ったものは、唯一このチャネルを生成した、 システムオペレータであり、システムオペレータは全てのコマンドに制限がない。

2.14 バージョン表示 - /version

 ペンクラ:/version

とすることで、WPailのバージョンが表示される。

2.15 コマンド一覧表示 - /help

 ペンクラ:/help

とすることで、WPailのコマンドの表示を行う。 説明が無い、コマンド羅列にとどまっている。

3. 起動方法

WPailをDLして適当なディレクトリに解凍します。 以下の作業は、その解凍したディレクトリで行います。

Windowsの場合は、以下のコマンドをDOSプロンプトより起動する。

jview Pailer chat.globewarp.or.jp 5200 ハンドル パスワード

unixや他のOSの場合は、javaがインストールされていることを確認した上で、 以下のように起動する。

java Pailer chat.globewarp.or.jp 5200 ハンドル パスワード

WPailが起動されると、赤のエスカレータの宇宙に、ハンドルで指定したアバタが ペンギンの姿で出現します。 ここで使用するハンドルですが、各自で取得してください。

全てのOSでテストしている訳ではありませんが、javaの動く環境であれば 動作すると思っています。 なお、javaに関する質問はご遠慮ください。

4. 注意事項

本ソフトウェアは、サーバならびにクライアントに、負荷をかけない、 迷惑をかけないが大前提である。 また、如何なる場合に於いても、使用者の責任の上で使用し、 本プログラムの使用によって発生した損害等について、 作者は責任を負わないものとする。 本ソフトウェアは、配布及び使用することに、最大の疑問がある。
もし、本ソフトウェアの使用を禁止させたい場合は、電子メールにてお知らせ ください。

このプログラムが、話題提供の役目になれば幸いです。

なお、1チャネルあたりの最大ユーザ数は、便宜的に100人に制限している。 部屋とは異なり、自分がいる場所に関係なく複数の人と話ができる。 このチャネルの感覚を理解すれば、便利で楽しい使い方ができるでしょう。 時間を含めた会話の履歴がWEBから参照可能なので、便利さと危険を含んでいます。 単に"/pres"だけでも「いますよ!」的に使用可能だと思います。 このオープンチャットは、始まったばかりで、利用用途は未知です。 この実験を通して、私自身も学んでいきたいと思っています。


Copyright (c) 1996-1998 kugatu. All rights reserved.

9月(kugatu)さんの実験?