bottler.py 1.0.12 ================= 梶山民人 (2002年3月7日) はじめに -------- 本ソフトウェアは、SSTP Bottle (http://bottle.mikage.to/) の互換 クライアントです。Unix 系 OS (Linux, FreeBSD など) の X Window System 環境上で動作します。 本ソフトウェアの最新版は以下の場所から入手できます。 http://www.geocities.co.jp/SiliconValley-Cupertino/7565/ 必要なもの ---------- 本ソフトウェアを動作させるには以下のソフトウェアが必要です。 o Python (http://www.python.org/) 本ソフトウェアの開発言語です。バージョン 2.0 での動作を確認し ています。1.5.2 や 2.1 でも動くと思います。Tkinter (Tcl/Tk を Python から利用するためのライブラリ) が組み込まれている必要が あります。 o Tcl/Tk (http://www.scriptics.com/) マルチプラットフォームのプログラミング言語/GUI ライブラリです。 本ソフトウェアは Tk の GUI 機能を利用しています。Tcl/Tk 8.0jp での動作を確認しています。 o kinput2, かな漢字変換サーバ 日本語を入力するのに必要です。Tcl/Tk アプリケーションで利用で きるように設定してください。 インストール方法 ---------------- 以下のように make コマンドを実行すればインストールは完了です。 # make install インストール先ディレクトリ (prefix) は /opt/ninix-1.0 になってい ます。必要に応じて変えて下さい。例: # make install prefix=/usr/local また、$(prefix)/bin に相当するディレクトリをパスに追加して下さい。 使い方 ------ 起動方法 - - - - - 以下のように bottler コマンドを実行します。 $ bottler -p (--port) オプションによりローカルの SSTP サーバのポート番号を 変更することができます。また、環境変数 BOTTLER_PORT でも指定可能 です。デフォルト値は9801です。例: 例1: $ bottler -p 11000 例2: $ BOTTLER_PORT=11000; export BOTTLER_PORT $ bottler 初回起動時にはユーザのホームディレクトリに .bottlecase というディ レクトリが作られます。このディレクトリには過去ログファイルや設定 ファイルなどが格納されます。 メインウィンドウ - - - - - - - - - bottler コマンドを実行するとメインウィンドウが開きます。上半分が スクリプト編集ウィンドウ、下半分がメッセージ表示ウィンドウです。 o SSTP Bottle サーバへの接続 メニューの File → Join を選択してチャンネル選択ウィンドウを開 き、接続したいチャンネルを選択して Join ボタンを押します。 SSTP Bottle サーバからメッセージが届くとローカルの SSTP サーバ (起動中の ninix など) に受信メッセージを転送します。メニューの Channel → Forward のオン/オフを切り替えることでメッセージ転送 を有効にしたり無効にしたりすることができます。転送が無効になっ ている場合でも受信メッセージは過去ログに保存されます。 SSTP Bottle サーバとの通信中にはメインウィンドウの右上にボトル マークが点灯します。 メニューの File → Part を選択すると SSTP Bottle サーバへの接 続を切ります。 o メッセージの編集・送信 スクリプト編集ウィンドウでメッセージを編集します。スクリプトの 文法については以下の「スクリプトリファレンス」を参照して下さい。 http://sakura.mikage.to/sakurascript.html 右クリックでスクリプト編集コマンドのショートカットメニューが表 示されます。別ウィンドウとして開きっぱなしにしておくこともでき ます。 スクリプトの表示上の改行には \n タグを使います。スクリプト編集 ウィンドウ内の改行は無視されます (1行に連結して送信されます)。 編集中は見やすいように適宜改行するとよいでしょう。 Check ボタンを押すと編集中のスクリプトの文法をチェックします。 Test ボタンを押すと編集中のスクリプトをローカルの SSTP サーバ に送ります。タグの効果の確認などにご利用下さい。 Send ボタンを押すと編集したスクリプトを SSTP Bottle サーバに送 ります。送信したメッセージは、SSTP Bottle サーバに接続中の他の クライアントに一斉放送されます。 o 受信側ゴーストの指定 Ghost メニューからゴースト名を選択することにより、受信側でスク リプトの再生に用いられるべきゴーストを指定することができます。 default を選択すると各チャンネルの推奨ゴーストが自動的に選択さ れます。 過去ログウィンドウ - - - - - - - - - - メインウィンドウのメニューの Window → Logs を選択すると過去ログ ウィンドウが開きます。上半分が過去ログ一覧ウィンドウ、下半分がス クリプト表示ウィンドウです。過去ログ一覧の各列は、左から順に受信 時刻、投票数、同意数、チャンネル名、受信スクリプトを表します。 o 過去ログの表示・再生 過去ログ一覧でメッセージを選択するとスクリプト表示ウィンドウに スクリプトが表示されます。 Play ボタンを押すと選択したメッセージをローカルの SSTP サーバ に送ります。席を離れていたり寝ていたりして見逃したメッセージを もう一度見ることができます。 o 投票・同意 Vote ボタンを押すと選択したメッセージに投票します。また、Agree ボタンを押すと選択したメッセージに同意票を送ります。投票結果は SSTP Bottle のサイトで公開されています。多重投票はしないように して下さい。自分の出したメッセージへの投票も賛否が分かれるよう です。 o 表示の更新 過去ログウィンドウの内容は自動的には更新されません。必要ならば メニューの View → Update を選択して内容を更新して下さい。また、 メニューの View → Channel/Range/Order を選択することにより過 去ログを表示するチャンネル、範囲、順序を変更することができます。 定型句ウィンドウ - - - - - - - - - メインウィンドウのメニューの Window → Phrases を選択すると定型 句ウィンドウが開きます。ウィンドウ中央部に定型句一覧、ウィンドウ 下部に行エディタおよび編集ボタンが表示されます。 o 定型句の編集 行エディタにスクリプトを入力して Add ボタンを押すと新しい定型 句を追加できます。定型句一覧からスクリプトを選択すると行エディ タにスクリプトの内容が呼び出されます。行エディタの内容を変更し て Modify ボタンを押すと選択された定型句を修正することができま す。Delete ボタンを押すと選択された定型句を一覧から削除します。 Clear ボタンを押すと行エディタの内容を消去します。 o 定型句の並べ替え ウィンドウ右下の上下のカーソルボタンにより定型句の並びを変更す ることができます。動かしたい定型句を選択してカーソルボタンで上 下に移動して下さい。 o 定型句の挿入 定型句一覧の定型句をダブルクリックするとメインウィンドウのスク リプト編集ウィンドウの現在のカーソル位置に選択した定型句が挿入 されます。 着信音/ヘルパーコマンド - - - - - - - - - - - - メッセージ受信時には着信音が鳴ります。メインウィンドウのメニュー の Channel → Bell により着信音のオン/オフを切り替えることができ ます。 メインウィンドウのメニューの File → Helpers を選択するとヘルパー コマンド指定ダイアログが開きます。各行の Channel 欄にはチャンネ ル名、Command 欄には起動する外部コマンドを記入します。音を鳴らす コマンドを指定するのが基本ですが、どんなコマンドでも指定すること ができます。実行完了までに時間のかかるプログラムの場合は「&」を 付けてバックグラウンドで実行するようにして下さい。例: Channel Command さくら play ~/sounds/sakura.wav & 双葉 play ~/sounds/futaba.wav & default play ~/sounds/bottle.wav & broadcast echo '%script' >> ~/.bottlecase/broadcast.log unicast echo '%script' >> ~/.bottlecase/unicast.log Channel 欄で指定した名前のチャンネルにメッセージが届くと対応する コマンドが実行されます。上記の設定例では、例えば「さくら」チャン ネルにメッセージが届くと ~/sounds/sakura.wav が再生されます。 Channel 欄には、実際のチャンネル名に加えて以下の特別な名前を指定 することができます。 default マッチするチャンネル名が見つからない場合に起動する コマンドを指定します。指定が無ければデフォルトの着 信音はビープ音になります。 broadcast サーバ管理者からの同報メッセージを受信した場合に起 動するコマンドを指定します。 unicast 個人宛の直通メッセージを受信した場合に起動するコマ ンドを指定します。 また、Command 欄に指定するコマンド文字列の中では以下のメタ文字列 を利用することができます。それぞれ対応する文字列に置換されます。 %script 受信したスクリプト %channel チャンネル名 更新履歴 -------- o バージョン 1.0.12 (2002年3月7日) - ローカルの SSTP サーバへのメッセージ転送を制御する Forward スイッチを付けた。 - DESTDIR を指定すると実行ファイルに書き込まれるライブラリのディ レクトリ名がおかしくなる問題を修正。(Thanks to shiena さん) o バージョン 1.0.11 (2002年1月6日) - 同意機能を実装した。 - 過去ログウィンドウの「指定範囲」の値のチェックがおかしかった のを修正。 - Makefile を修正。RPM 等のパッケージを作る際の仮インストール 先 (DESTDIR) を指定できるようにした。 o バージョン 1.0.10 (2001年10月12日) - Ghost メニューを追加した。 - 取得した LUID (ユーザ番号) を ~/.bottlecase/luid に保存して 再利用し、起動のたびに新規取得しないようにした。 - SLPP コマンド送信時に Agent: ヘッダを付けるようにした。 o バージョン 1.0.9 (2001年10月10日) - redo 仕様の Sakura Script に対応。\0 タグと \1 タグの処理を 追加した。 - チャンネル終了時の不具合を修正した。 o バージョン 1.0.8 (2001年9月29日) - 括弧なしの \s タグと \b タグの処理を修正。例えば、"\s123" は "\s[1]23" と解釈する。また、"\u…\s1…" は "\u…\s[11]…" と 解釈する。 - 過去ログウィンドウの「昨日」の表示範囲がおかしくなっていたの を修正。 - サーバ接続時のエラーが標準出力に出る問題を修正。 o バージョン 1.0.7 (2001年9月27日) - \h, \u, \s[] の各タグの使用順序をチェックするようにした。 - メッセージ送信時のエラーが標準出力に出る問題を修正。 o バージョン 1.0.6 (2001年9月8日) [過去ログウィンドウ] - View メニューの中の Channel と Range の位置を入れ換えた。 - 表示範囲の選択方法を変更。Range で指定された範囲内のチャンネ ル名だけを表示して選択するようにした。また、現在選択されてい るチャンネル名が指定範囲内に無い可能性があるので、Range が変 更された場合は Channel を「すべて」に戻すようにした。 - Range が「指定期間」のときに Channel または Order を変更しよ うとすると期間指定ダイアログが表示されるバグを修正。 - 「指定期間」の開始日と終了日が同じでもよいことにした (期間指 定ダイアログで指定した終了日を次の日にずらすようになっていた が、おかしな仕様のような気がするので修正)。 o バージョン 1.0.5 (2001年9月7日) - 国勢調査に対応。10分間隔で現在のゴーストの名前を調べて変更が あればサーバに通知するようにした。 - 他のアプリケーションがグラブを保持している状態でダイアログウィ ンドウを開くと即死する問題 (レアケースだが致命的) に暫定対処。 o バージョン 1.0.4 (2001年9月5日) [定型句ウィンドウ] - 最下行を越えて定型句を下方向に移動しようとするとエラーが起こ る問題を修正。 - 追加および削除の後のカーソル位置を改良。 o バージョン 1.0.3 (2001年9月3日) - 定型句ウィンドウを追加した。 - メッセージを受信した時に着信音を鳴らせるようにした。ヘルパー コマンド指定ダイアログと着信音スイッチを追加。 - コマンドラインオプション -p (--port), -h (--help) を追加。 - スクリプト編集ウィンドウのショートカットメニューにいくつかの コマンドを追加。(Thanks to いわもとさん) - 各ダイアログウィンドウの「OK」ボタンと「Cancel」ボタンをそれ ぞれ Return キーと Escape キーで操作できるようにした。 - 選択肢系のショートカットメニューのカーソル移動に関するバグを 修正。 - Script: ヘッダのない forceBroadcastMessage コマンドが来ると フリーズするバグを修正。 - Makefile の不具合を修正。 o バージョン 1.0.2 (2001年7月9日) - 最新の Sakura Script の仕様に準拠するようにした。 - 特殊文字 '%' に対する文法チェックを緩和した。認識可能なメタ 文字列 (%selfname, %keroname など) の先頭以外の場所ではバッ クスラッシュエスケープなしでも通常の文字として扱うようにした。 - \s タグと \b タグのスクエアブラケット無しの引数 (旧仕様) に 対応した。 - Help → About でリビジョン番号まで含めた正確なバージョン番号 が出るようにした。 o バージョン 1.0.1 (2001年6月27日) - 起動コマンド (bottler) にインストール時の python のパス名を 書き込むようにした。 - 過去ログを再生するときの SSTP メッセージの Sender: ヘッダの 値を修正した。 o バージョン 1.0 (2001年6月25日) - 最初のリリース。 謝辞 ---- o SSTP Bottle 開発者のなるさん、沢渡みかげさん、それに毎日楽しい ネタを届けてくれるボトラーのみなさん。 o 「何か」を世に送り出した閑馬永空さん、黒衣鯖人さん。 o ゴースト/シェル/バルーンの制作者のみなさん。 o Python をはじめとする関連フリーソフトウェアの開発者のみなさん。 あなた方がいなければこのソフトウェアの存在はあり得ませんでした。 本当にありがとう。 ライセンス ---------- 本ソフトウェアは、GNU General Public License (バージョン2以降) に基づくフリーソフトウェアです。あなたは、同ライセンスに従って 本ソフトウェアを自由に利用し、修正し、再配付することができます。 本ソフトウェアは無保証です。本ソフトウェアの作者は、本ソフトウェ アを利用したことによって生じた如何なる損害に対してもその責を負い ません。 作者 ---- 梶山民人 本ソフトウェアに対するコメント、バグ報告、パッチなどは大いに歓迎 します。上記のメールアドレスまでお気軽にお寄せ下さい。 $Id: README,v 1.16 2002/03/06 15:26:03 kajiyama Exp $