System 関係のモジュール - Tiarra Documentation

# System 関係のモジュール

## System::Error

サーバーからのERRORメッセージをNOTICEに埋め込む

これをoffにするとクライアントにERRORメッセージがそのまま送られます。
クライアントとの間ではERRORメッセージは主に切断警告に使われており、
そのまま流してしまうとクライアントが混乱する可能性があります。
設定項目はありません。

このモジュールを回避してERRORメッセージをクライアントに送りたい場合は、
remarkのsend-error-as-is-to-clientを指定してください。

## System::LivePatch

Live Patch.

main/* に対する実行時パッチ
起動/ロード時に確認は行われるが, 実際の適用は指示があるまで行われない.

対応している箇所.
ModuleManager / reload_modules_if_modified / r3004 => r8809
LinedINETSocket / connect / r3004 => r8930
Configuration::Block / equals / r3004 => r11868

/livepatch check で確認.
/livepatch apply で適用.

command:livepatch

## System::Macro

新規にコマンドを追加し、そのコマンドが使われた時に特定の動作をまとめて実行します。

書式: <コマンド> <動作>
コマンド"switch"を追加して、それが使われると
#a@ircnet,#b@ircnet,#c@ircnetにjoinして、
#d@ircnet,#e@ircnet,#f@ircnetからpartする例。

macro:switch join #a@ircnet,#b@ircnet,#c@ircnet
macro:switch part #d@ircnet,#e@ircnet,#f@ircnet

## System::NotifyIcon::Win32

タスクトレイにアイコンを表示する。

タスクトレイにアイコンを表示します。
クリックすると表示非表示を切り替えることができ、右クリックすると
Reload と Exit ができるコンテキストメニューを表示します。
多少反応が鈍いかもしれませんがちょっと待てば出てくると思います。

Win32::GUI を必要とします。
コンテキストメニューは表示している間処理をブロックしています。

Win32 イベントループを処理する最大間隔を指定します。

interval:2

通知領域に表示するアイコンを指定します。
Win32::GUI の制限でちゃんとしたアイコンファイルしか指定できません。

iconfile:guiperl.ico

モジュールが読み込まれたときにコンソールウィンドウを隠すかどうかを
指定します。

hide-console-on-load:1

## System::Pong

サーバーからのPINGメッセージに対し、自動的にPONGを返す。

これをoffにするとクライアントが自らPINGに応答せざるを得なくなりますが、
クライアントからのPONGメッセージはデフォルトのサーバーへ送られるので
デフォルト以外のサーバーからはPing Timeoutで落とされるなど
全く良い事がありません。
設定項目はありません。

## System::PrivTranslator

クライアントからの個人的なprivが相手に届かなくなる現象を回避する。

このモジュールは個人宛てのprivmsgの送信者のnickにネットワーク名を付加します。
また、最後に声をかけられてから5分以内の nick 変更をクライアントに伝えます。
設定項目はありませんが、 networks/channel-network-separator を ! や @ 以外に
変更することをおすすめします。

## System::Raw

マスクで指定したサーバーにIRCメッセージを加工せずに直接送る。

例えばQUITを送る事で一時的な切断が可能。

この機能を利用するためのコマンド名。デフォルトは「raw」。
「/raw ircnet quit」のようにして使う。
一つ目のパラメータは送り先のネットワーク名。ワイルドカード使用可能。
CHOCOA の場合、 raw がクライアントで使われてしまうので、
コマンド名を変えるか、 /raw raw ircnet quit のようにする必要がある。

command:raw

## System::Reload

confファイルやモジュールの更新をリロードするコマンドを追加する。

リロードを実行するコマンド名。省略されるとコマンドを追加しません。
例えば"load"を設定すると、"/load"と発言しようとした時にリロードを実行します。
この時コマンドはTiarraが握り潰すので、IRCプロトコル上で定義された
コマンド名を設定すべきではありません。

command:load

command と同じですが、サーバにもブロードキャストします。

broadcast-command:load-all

confファイルをリロードしたときに通知します。
モジュールの設定が変更されていた場合は、ここでの設定にかかわらず、
モジュールごとに表示されます。1または省略された場合は通知します。

conf-reloaded-notify:1

## System::RemoteControl

特定の発言が送られてきたとき、それに反応してIRCコマンドを実行します。

実行を許可する人間を表すマスク。

mask:*!*example@example.net

構文: + <nick> <IRC Message>
<nick>は反応するbotのnickを表すマスク。
<Tiarra::IRC::Message>はサーバーに向けて発行するIRCメッセージ。
例:
+ hoge NICK [hoge]
hogeというBOTが[hoge]にnickを変更する。

## System::Shutdown

Tiarraを終了させる。

クライアントから特定のコマンドが実行された時や、
誰かから個人的に(privで)特定の発言が送られた時に
Tiarra を終了させます。

追加するコマンド。省略された場合はコマンドでのシャットダウンは無効になります。

command:shutdown

Tiarraをシャットダウンさせるprivの発言。
省略された場合はprivでのシャットダウンは無効になります。
パラメータとして shutdown メッセージを指定できます。

message:shutdown

privでのシャットダウンを許可する人。
省略された場合はprivでのシャットダウンは無効になります。
複数のマスクを指定した場合は、一つでもマッチするものがあればシャットダウンします。

mask:example!example@*.example.jp

## System::WebClient

ブラウザ上でログを見たり発言したりできます.

WebClient を起動させる場所の指定.

bind-addr:127.0.0.1
bind-port:8667
path:/irc
css:/irc/style/style.css

上の設定をapacheでReverseProxyさせる場合, httpd.conf には次のように設定.
ProxyPass /irc/ http://localhost:8667/irc/
ProxyPassReverse /irc/ http://localhost:8667/irc/
<Location /irc/>
...
</Location>

ReverseProxy 利用時の追加設定.
接続元が全部プロキシサーバになっちゃうのでその対応.
ReverseProxy 使わず直接公開の場合は不要.

extract-forwarded-for:127.0.0.1

利用する接続設定の一覧.
空白区切りで評価する順に記述.
使われる設定は,
- 接続元 IP が一致する物.
- user/passが送られてきていない(認証前/anonymous):
- 認証不要の設定があればその設定を利用.
- 認証不要の設定がなければ 401 Unauthorized.
- user/passが送られてきている.
- 一致する設定を利用.
- 一致する設定がなければ 401 Unauthorized.

allow:private public

許可する接続の設定.

allow-private

接続元IPアドレスの制限.

host:127.0.0.1

認証設定.
auth: <user> <pass>
auth: :basic <user> <pass>
auth: :softbank <端末ID>
auth: :softbank <UID>
auth: :au <SUBNO>
各値(<pass>等)には {MD5}xxxx や {B}xxx や {CRYPT}xxx を利用可能.
そのままべた書きも出来るけれど.

auth::basic user pass

公開するチャンネルの指定.

mask:#*@*
mask:*@*
allow-public
host:*
auth::basic user2 pass2
mask:#公開チャンネル@ircnet

デバッグフラグ.

debug:0

保存する最大行数.

max-lines:100

クライアントモード.
owner か shared.

mode:owner

ログの方向.
asc (旧->新) か desc (新->旧).

sort-order:asc

name-default 設定は VERSION 0.05 で廃止されました.
# 発言BOXで名前指定しなかったときのデフォルトの名前.
# mode: shared の時に使われる.
-name-default: (noname)

外部にTiarraさんを使っているときに, そこのネットワークを切り出して表示する.
exteact-network: <netname> <remote-sep>
<netname> ::= このTiarraさんから見たときの外部Tiarraさんのネットワーク名.
(このtiarra.confで指定しているネットワーク名)
<remote-sep> ::= 外部Tiarraさんで使っているセパレータ.
(こっちはこのtiarra.confのではないです)
省略すると @ と仮定.

exteact-network:tiarra
exteact-network:tiarra @