1# -*- tiarra-conf -*- 2# ----------------------------------------------------------------------------- 3# $Id: all.conf.in 36552 2010-01-27 14:53:29Z drry $ 4# ----------------------------------------------------------------------------- 5# tiarra.conf サンプル 6# このファイルにはすべてのブロックの解説があります。 7# 必要なブロックがあればここからコピーしていってください。 8# ----------------------------------------------------------------------------- 9 10# ----------------------------------------------------------------------------- 11# generalブロック 12# 13# tiarra.conf自身の文字コードやユーザー情報などを指定するブロックです。 14# ----------------------------------------------------------------------------- 15general { 16 # tiarra.conf自身の文字コード 17 # コード名はjis,sjis,euc,utf8,utf16,utf32等。(この値はEncodeまたはUnicode::Japaneseにそのまま渡されます) 18 # autoが指定された、または省略された場合は自動判別します。 19 conf-encoding: utf8 20 21 # ユーザー情報 22 # 省略不能です。 23 nick: tiarra 24 user: tiarra 25 name: Tiarra the "Aeon" 26 27 # どのようなユーザーモードでログインするか。+iwや+iのように指定する。 28 # 省略された場合はユーザーモードを特に設定しない。 29 #user-mode: +i 30 31 # Tiarraへの接続を許可するホスト名を表わすマスク。 32 # 制限をしないのであれば"*"を指定するか省略する。 33 client-allowed: * 34 35 # Tiarraが開くポート。ここに指定したポートへクライアントに接続させる。 36 # 省略されたらポートを開かない。 37 tiarra-port: 6667 38 39 # Tiarraがポートtiarra-portを開く際、IPv6とIPv4のどちらでリスニングを行なうか。 40 # 'v4'または'v6'で指定します。デフォルトは'v4'です。 41 # IPv6を使うためにはSocket6.pmが利用可能である必要があります。 42 #tiarra-ip-version: v4 43 44 # Tiarraがポートtiarra-portを開く際のローカルアドレス。 45 # 意味が分からなければ省略して下さい。 46 # デフォルトは、IPv4のはINADDR_ANY、IPv6のはin6addr_anyになります。 47 #tiarra-ipv4-bind-addr: 0.0.0.0 48 #tiarra-ipv6-bind-addr: ::0 49 50 # Tiarraにクライアントが接続する際に要求するパスワードをcryptした文字列。 51 # 空の文字列が指定されたり省略された場合はパスワードを要求しない。 52 # crypt は ./tiarra --make-password で行えます。 53 tiarra-password: xl7cflIcH9AwE 54 55 # 外部プログラムからTiarraをコントロールする為のUNIXドメインソケットの名前。 56 # 例えば"foo"を指定した場合、ソケット/tmp/tiarra-control/fooが作られる。 57 # 省略された場合はこの機能を無効とする。 58 # また、非UNIX環境ではそもそもUNIXドメインソケットが利用可能でないため、 59 # そのような場合にもこの機能は無効となる。 60 #control-socket-name: test 61 62 # IRCサーバーから送られる文字のコードと、IRCサーバーへ送る文字のコード。 63 # それぞれ省略された場合はjis。 64 server-in-encoding: utf8 65 server-out-encoding: utf8 66 67 # クライアントから受け取る文字のコードと、クライアントへ伝える文字のコード。 68 # それぞれ省略された場合はjis。 69 client-in-encoding: utf8 70 client-out-encoding: utf8 71 72 # Tiarraは標準出力に様々なメッセージを出力するが、その文字コードを指定する。省略時にはutf8となる。 73 # ただしtiarra.confのパースが完了するまでは文字コードの変換は行なわれない(つまりこの設定が有効にならない)ことに注意して下さい。 74 stdout-encoding: utf8 75 76 # Tiarraはエラーメッセージを標準出力に出力するが、その時に接続しているクライアントがあればクライアントにもNOTICEで送る事が出来る。 77 # この値を1にすると、その機能が有効になる。省略するか0を指定するとこの機能は無効になる。 78 notice-error-messages: 1 79 80 # Tiarraでチャンネルとユーザーのマスクを指定するときの形式。 81 # plum形式とTiarra形式が選択できます。 82 #----------------- 83 # plum形式: (channelには+や-は使えない。channelは省略すると*とみなす。) 84 # + syntax: user[ channel[ channel[ ...]]] 85 # 86 # mask: +*!*@*.example.com #{example}@ircnet +{example3}@ircnet 87 # mask: -*!*@*.example.com #{example2}@2ch,+{example4}@2ch 88 # mask: -*!*@* 89 #----------------- 90 # Tiarra形式: (channelにも+や-を使える。) 91 # + syntax: channel user 92 # 93 # mask: #{example}@ircnet,-#{example2}@2ch +*!*@*.example.com 94 # mask: ++{example3}@ircnet,-+{example4}@2ch +*!*@*.example.com # +で始まるチャンネル。 95 # mask: * -*!*@* 96 #----------------- 97 # となります。この二つはまったく同じマスクを表しています。 98 99 # この値をplumにすると、plum形式、省略するかtiarraを指定すると、Tiarra形式になります。 100 chanmask-mode: tiarra 101 102 # サーバーに接続する際、ローカル側のどのアドレスにバインドするか。 103 # 意味が分からなければ省略して下さい。 104 # デフォルトは、IPv4のはINADDR_ANY、IPv6のはin6addr_anyになります。 105 #ipv4-bind-addr: 0.0.0.0 106 #ipv6-bind-addr: ::0 107 108 # Tiarra が、 001 や 002 や、 recent log を送信するときなどに使う prefix 109 # を指定します。 hostname や FQDN っぽいものを指定すると良いかもしれません。 110 # デフォルトは tiarra です。普通変える必要はありません。 111 #sysmsg-prefix: tiarra 112 113 sysmsg-prefix-use-masks { 114 # sysmsg-prefix を使用する場所を指定する。 115 116 # システムメッセージ(NumericReply など)。デフォルトは * です。 117 # ふつうこれを変更する必要はありません。 118 system: * 119 120 # 個人宛メッセージ(Notice,Privmsg の中で)。デフォルトはなし。 121 #priv: 122 123 # チャンネル宛メッセージ(Notice,Privmsg の中で)。デフォルトは * です。 124 # Ziciz などのクライアントを接続する場合は、 125 # -*::log を指定しておくといいかもしれません。 126 channel: * 127 } 128 129 # Tiarra が nick 変更時の衝突等を処理するモードを指定します。 130 # 0: Tiarra が接続時と同様に自動処理します。 131 # 1: クライアントにそのまま投げます。 132 # 複数のクライアントが nick 重複を処理する場合は非常に危険です。 133 # (設定不足の IRC クライアントが複数つながっている場合も含みます) 134 # 2: 対応するエラーメッセージ付きの NOTICE に変換して、 135 # クライアントに投げます。 136 # multi-server-mode 時のデフォルトは 0 、 single-server-mode 時のデフォルトは 1 です。 137 #nick-fix-mode: 0 138 139 # Tiarra がチャンネルに join する際の挙動を設定します。 140 # デフォルト設定で Excess Flood になってしまう場合に設定してください。 141 # 142 # irc.juggler.jp (2ch@IRC) にて 25 チャンネル以上 join している場合に 143 # Excess Flood になってしまった事例があるそうです。 144 145 # JOIN コマンドを送信する間隔 (秒) 146 # デフォルトは1秒です。 147 join-interval: 1 148 149 # 一つの JOIN コマンドで指定するチャンネルの数 150 # デフォルトは5チャンネルです。 151 join-channels-per-command: 5 152 153 messages { 154 # Tiarra が使用する、いくつかのメッセージを指定する。 155 156 quit { 157 # ネットワーク設定が変更され、再接続する場合の切断メッセージ 158 netconf-changed-reconnect: Server Configuration changed; reconnect 159 160 # ネットワーク設定が変更され、切断する場合の切断メッセージ 161 netconf-changed-disconnect: Server Configuration changed; disconnect 162 } 163 } 164} 165 166# ----------------------------------------------------------------------------- 167# networksブロック 168# 169# Tiarraから接続するIRCネットワークの名称です。 170# 一つも定義しなかった場合やこのブロックを省略した場合は、 171# "main"というネットワークが一つだけ指定されたものと見做します。 172# ----------------------------------------------------------------------------- 173networks { 174 # 複数のサーバーへの接続を可能にするかどうか。1(オン)と0(オフ)で指定。 175 # これを1にすると、次のnameを複数個定義する事が可能になり、 176 # 複数のサーバーに同時に接続出来るようになります。 177 # その一方、これを1にしている時は、チャンネル名にネットワーク名が付加される等、 178 # IRCの大部分のメッセージがTiarraによる改変を受けます。 179 # これを0にしている間は、次のnameを複数個定義する事は出来なくなります。 180 # マルチサーバーモードの設定を起動中に変えると、クライアントから見たチャンネル名が 181 # 変更になる為、全クライアントが一時的に全てのチャンネルからpartしたように見え、 182 # その直後にjoinし直したように見えます。 183 # デフォルトでは1です。 184 multi-server-mode: 1 185 186 # 接続するIRCネットワークに名前を付けます。この名前は後で使用します。 187 # 複数のネットワークに接続したい場合は多重定義して下さい。 188 name: ircnet 189 name: 2ch 190 #name: freenode 191 #name: ustream 192 193 # 通常Tiarraではチャンネル名を「#Tiarra@ircnet」のように表現します。 194 # これはネットワークircnet内の#Tiarraというチャンネルを表わします。 195 # @以降は省略可能ですが、省略された場合のデフォルトのネットワーク名をここで指定します。 196 # 省略した場合は最も始めに定義されたnameがデフォルトになります。 197 # (そしてnameが一つも無かった場合はmainがデフォルトになります) 198 #default: ircnet 199 200 # 上に述べた通り、デフォルトではTiarraはチャンネル名とネットワーク名を@で区切ります。 201 # この区切り文字は任意の文字に変更する事が出来ます。省略された場合は@になります。 202 # 203 # System::PrivTranslator モジュールを利用している場合、 prefix の nick 部分にも 204 # 利用されます。そのため、 ! や @ を含む文字列を利用するとクライアントが誤作動する 205 # 場合がありますので注意してください。 206 channel-network-separator: @ 207 208 # 接続先のサーバーから切断された時に、joinしていたそのサーバーのチャンネルをどうするか。 209 # 1. "part-and-join"の場合は、切断されるとクライアントにはチャンネルからpartしたように見せ掛け、 210 # 再接続に成功すると再びjoinしたように見せ掛ける。最も負荷が高い。(これはplumに似た動作である) 211 # 2. "one-message"の場合は、切断されるとクライアントに宛ててTiarraがNOTICEでその旨を報告する。 212 # 再接続に成功すると再びNOTICEで報告する。JOINやPARTはしないので、 213 # クライアントからはまだそのチャンネルに残っているかのように見える。 214 # 3. "message-for-each"の場合は、切断されるとクライアントに宛ててTiarraが 215 # 到達不能になった全てのチャンネルにNOTICEでその旨を報告する。 216 # 再接続に成功すると再びNOTICEで報告する。JOINやPARTはしない。 217 # 省略時のデフォルトはpart-and-joinです。 218 action-when-disconnected: message-for-each 219 220 # NICKを変更する度に、変更したサーバーでの新しいNICKをNOTICEで常に通知するかどうか。 221 # 1なら必ず通知し、0なら変更後のnickがローカルnick(クライアントが見る事の出来るnick)と違っている場合のみ通知する。 222 # デフォルトは0です。 223 always-notify-new-nick: 0 224 225 fixed-channels { 226 # Tiarra がクライアント接続時にチャンネル情報を送る順番を指定する。 227 # マッチしなかったチャンネルについては最後にまとめて 228 # (順番がごちゃごちゃになって)送られてきます。 229 channel: #てすとちゃんねる@ircnet 230 channel: #てすと@localserver 231 channel: *@localserver 232 channel: *@localserver:*.jp 233 } 234} 235 236# ----------------------------------------------------------------------------- 237# 各ネットワークの設定 238# 239# networksブロックで定義した全てのネットワークについて、 240# そのアドレス、ポート、(必要なら)パスワードを定義します。 241# ----------------------------------------------------------------------------- 242ircnet { 243 # サーバーのホストとポートを指定。複数行可。(host/port が指定されていない場合は)省略不可。 244 # 同じサーバの複数のポート指定は順番に試すので、大量に書かない方がよい。 245 server: irc.ircnet.ne.jp 6667 246 server: irc.media.kyoto-u.ac.jp 6662 6663 247 server: irc.huie.hokudai.ac.jp 6667 248 249 # サーバーのホストとポート。(server が指定されていない場合は)省略不可。 250 # server を指定した場合は server が優先されます。 251 #host: irc.media.kyoto-u.ac.jp 252 #port: 6663 253 254 # general/userで設定したユーザ名を使わずに、各ネットワークで独自のユーザ名を使用する事も可能。 255 # 省略されたら当然、general/userで設定したものが使われる。 256 #user: hoge 257 258 # general/nameで設定した本名(建前上)を使わずに、各ネットワークで独自の本名を使用可能。 259 #name: hoge 260 261 # このサーバーの要求するパスワード。省略可能。 262 #password: hoge 263 264 # general/setver-in/out-encodingで設定した文字のコードを使わずに、 265 # 各ネットワークで独自の文字コードを使用する事も可能。 266 # 省略されたら当然、generalで設定したものが使われる。 267 in-encoding: jis 268 out-encoding: jis 269 270 # general/(ipv4|ipv6)bind-addrで設定したローカルアドレスを使わずに、 271 # 各ネットワークで独自のbind_addrを使用する事も可能。 272 # 省略されたらgeneralで設定したものが使われる。 273 #ipv4-bind-addr: 0.0.0.0 274 #ipv6-bind-addr: ::0 275} 276 2772ch { 278 server: irc.2ch.net 6667 279 server: irc2.2ch.net 6667 280 server: irc.juggler.jp 6667 281 282 in-encoding: jis 283 out-encoding: jis 284} 285 286freenode { 287 server: chat.freenode.net 6667 288 289 # freenodeではパスワードとして「アカウント パスワード」のように、 290 # アカウントに空白とパスワードを続けたものを指定することで、 291 # NICKコマンドの前の接続の段階でidentifyすることができるため、 292 # nickの重複や異なるnick等、nickとは無関係に自動identifyが可能。 293 #password: account secret 294} 295 296ustream { 297 server: chat1.ustream.tv 6667 298 299 # Ustreamのloginをnickとuserに指定する。 300 #nick: ustreamer 301 #user: ustreamer 302 303 # Ustreamのパスワードを指定する。 304 #password: secret 305} 306 307# ----------------------------------------------------------------------------- 308# 必須の設定は以上です。以下はモジュール(プラグイン)の設定です。 309# ----------------------------------------------------------------------------- 310 311# +または-で始まる行はモジュール設定行と見做されます。 312# +で記述されたモジュールが使用され、-で記述されたモジュールは使用されません。 313# +や-の後の空白は幾つあっても無視されます。 314 315# メッセージが各モジュールを通過する順番は、このconfファイルで記述された 316# 順番の通りになります。ログを取るモジュールなどはconfでも後の方に 317# 記述した方が良いということになります。 318 319# モジュール名はperlのそれと同じようにディレクトリ区切り文字を「::」としたパスで表現されます。 320# 例えばモジュールChannel::Auto::Operの実体はファイルmodule/Channel/Auto/Oper.pm 321# でなければならず、そのpackage宣言もChannel::Auto::Operでなければなりません。 322# Tiarraモジュールの名称は、perl標準モジュール群やmain/下の.pmファイルと重複しないように 323# 気を付けて下さい。Tiarraはモジュールが本当にModuleのサブクラスかどうかをチェックするので 324# 例えばIO::Socket::INETといったモジュールを置いても誤動作はしませんが、 325# そのようなモジュールはロード時にエラーを出して使用中止になります。 326 327# 一つのモジュールを複数回定義して、何度も同じモジュールをメッセージが通過するようには出来ません。 328 329# 幾つかのモジュールはパラメータとしてチャンネル名を必要とします。 330# ここで指定するチャンネル名は、ネットワーク名も含めた文字列でなければなりません。 331# 「#チャンネル」では駄目で「#チャンネル@ネットワーク」などとする必要があります。 332 333# マスクの書式: 334# ['+' / '-'] ( <マスク文字列> / "re:" 正規表現 ) 335# これはカンマで幾つでも継ぐ事が出来ます。"\,"でカンマそのものを表します。 336# 先頭が+なら、それに続く部分にマッチするものが選ばれ、-なら除外されます。省略されたら+と見做されます。 337# マスク文字列とは"*"で0文字以上の任意の文字列を、"?"で1文字の任意の文字列を表す文字列です。 338# 例: 339# tiarra* これはtiarraで始まる文字列を表す。 340# +*!*tiarra@*.jp,-re:\d これは*!*tiarra@*.jpにマッチして、かつ文字列中に数字を含まないものを表す。 341 342 343- Auto::Alias { 344 # ユーザエイリアス情報の管理を行ないます。 345 346 # エイリアスは基本的にname,userの二つのフィールドから成っており、 347 # それぞれユーザー名、ユーザーマスクを表します。 348 349 # エイリアス定義ファイルのパスと、そのエンコーディング。 350 # このファイルは次のようなフォーマットである。 351 # 1. それぞれの行は「<キー>: <値>」の形式である。 352 # 2. 空の行で、各ユーザーを区切る。 353 # 3. <値>はカンマで区切られて複数の値とされる。 354 # 355 # エイリアス定義ファイルの例: 356 # 357 # name: sample 358 # user: *!*sample@*.sample.net 359 # 360 # name: sample2,[sample2] 361 # user: *!sample2@*.sample.net,*!sample2@*.sample2.net 362 # 363 alias: alias.txt 364 alias-encoding: euc 365 366 # この発言をした人のエイリアスが登録されていれば、それをprivで送る。 367 confirm: エイリアス確認 368 369 # 「<addで指定したキーワード> user *!*user@*.user.net」のようにして情報を追加。 370 # 発言をした人のエイリアスが未登録だった場合は、userのみ受け付けて新規追加とする。 371 add: エイリアス追加 372 373 # 「<removeで指定したキーワード> name ユーザー」のようにして情報を削除。 374 # userを全て削除されたエイリアスは他の情報(name等)も含めて消滅する。 375 remove: エイリアス削除 376 377 # メッセージが追加されたときの反応を指定します。 378 # ランダムなメッセージを発言する際のフォーマットを指定します。 379 # エイリアス置換が有効です。#(nick.now)、#(channel)は 380 # それぞれ相手のnick、チャンネル名に置換されます。 381 # #(key)、#(value)は、追加されたキーと値に置換されます。 382 added-format: #(name|nick.now): エイリアス #(key) に #(value) を追加しました。 383 add-failed-format: #(name|nick.now): エイリアス #(key) の追加に失敗しました。 384 385 # メッセージが削除されたときの反応を指定します。 386 # added-formatで指定できるものと同じです。 387 removed-format: #(name|nick.now): エイリアス #(key) から #(value) を削除しました。 388 remove-failed-format: #(name|nick.now): エイリアス #(key) からの削除に失敗しました。 389 390 # エイリアスの追加や削除が許されている人。省略された場合は「*!*@*」と見做される。 391 modifier: *!*@* 392} 393 394- Auto::Answer { 395 # 特定の発言に反応して対応する発言をする。 396 397 # Auto::Aliasを有効にしていれば、エイリアス置換を行ないます。 398 399 # 反応する発言と、それに対する返事を定義します。 400 # エイリアス置換が有効です。#(nick.now)と$(channel)はそれぞれ 401 # 相手の現在のnickとチャンネル名に置換されます。 402 # 403 # コマンド: reply 404 # 書式: <反応する発言のマスク> <それに対する返事> 405 # 例: 406 #reply: こんにちは* こんにちは、#(name|nick.now)さん。 407 # この例では誰かが「こんにちは」で始まる発言をすると、 408 # 発言した人のエイリアスを参照して「こんにちは、○○さん。」のように発言します。 409 # 410 # コマンド: channel-reply 411 # 書式: <反応するチャンネルのマスク> <反応する発言のマスク> <それに対する返事> 412 # 例: 413 #channel-reply: #あいさつ@ircnet こんにちは* こんにちは、#(name|nick.now)さん。 414 # この例では#あいさつ@ircnetで誰かが「こんにちは」で始まる発言をすると、 415 # 発言した人のエイリアスを参照して「こんにちは、○○さん。」のように発言します。 416 # 417 # コマンド: answer-to-myself 418 # 書式: <真偽値> 419 # 例: 420 #answer-to-myself: on 421 # 自分の発言にも反応するようになります。 422 # デフォルトは off です。 423} 424 425- Auto::Calc { 426 # Perlの式を計算させるモジュール。 427 428 # 反応する発言を指定します。 429 request: 計算 430 431 # 使用を許可する人&チャンネルのマスク。 432 # 例はTiarraモード時。 [default: なし] 433 mask: * +*!*@* 434 # [plum-mode] mask: +*!*@* 435 436 # 結果が未定義だったときに置き換えられる文字列。省略されると undef 。 437 #undef: (未定義) 438 439 # 正常に計算できたときのフォーマット 440 # method: 計算式, result: 結果, error: エラー, signal: シグナル 441 reply-format: #(method): #(result) 442 443 # エラーが起きたときのフォーマット 444 # method: 計算式, result: 結果, error: エラー, signal: シグナル 445 error-format: #(method): エラーです。(#(error)) 446 447 # シグナルが発生したときのフォーマット 448 #signal-format: #(method): シグナルです。(#(signal)) 449 450 # signal-$SIGNALNAME-format 形式。 451 # $SIGNALNAME には現状 alarm/sigfpe があります。 452 # 該当がなければ signal-format にフォールバックします。 453 454 # いくつかの例を挙げます。 455 #signal-alarm-format: #(method): 時間切れです。 456 #signal-sigfpe-format: #(method): 浮動小数点計算例外です。 457 458 # タイムアウトする秒数を指定します。 alarm に渡されます。 459 # 再帰を止めるのに使えますが、どうもメモリリークしていそうな雰囲気です。 460 timeout: 1 461 462 # サブルーチン定義を許可するかどうかを指定する。 463 # 再帰定義が可能なので、許可する場合はこのモジュール専用の 464 # Tiarra を動かすことをお勧めします。 465 permit-sub: 0 466 467 # 初期化する発言を指定します。 468 # このモジュールでは現状変数や関数定義などを行えます。 469 # このコマンドが発行されるとそれらをクリアします。 470 init: 計算初期化 471 472 # 初期化を許可する人&チャンネルのマスク。 473 # 例はTiarraモード時。 [default: なし] 474 init-mask: * +*!*@* 475 # [plum-mode] mask: +*!*@* 476 477 # 再初期化したときの発言を指定します。 478 init-format: 初期化しました。 479 480 # 別の shared-mode な System::WebClient からの発言に対応(yes/no). 481 # 自分自身の発言は未対応. 482 # [default: no] 483 #support-shared-webclient: no 484} 485 486- Auto::ChannelWithoutOper { 487 # チャンネルオペレータ権限がなくなってしまったときに発言する。 488 489 # +で始まらない特定のチャンネルで、+aモードでも+rモードでもないのに 490 # 誰もチャンネルオペレータ権限を持っていない状態になっている時、 491 # そこに誰かがJOINする度に特定のメッセージを発言するモジュールです。 492 493 # 書式: <チャンネル名> <メッセージ> 494 #channel: #IRC談話室@ircnet なると消失しました。 495} 496 497- Auto::FetchTitle { 498 # 発言に含まれるURLからタイトルを取得. 499 500 # リクエストタイムアウトまでの時間(秒). 501 timeout: 3 502 503 # 有効にするチャンネルとオプションとURLの設定. 504 # 書式: mask: <channel> [<&conf>...] <url> 505 # 506 # mask: #test@ircnet &test http://* 507 # mask: * http://* 508 mask: * http://* 509 510 # &test と設定すると conf-test ブロックの中身が使われる. 511 #conf-test { 512 # auth-test1 { 513 # url: http://example.com/* 514 # url: http://example.org/* 515 # user: test 516 # #pass: test 517 # pass: {BASE64}dGVzdAo= 518 # } 519 # filter-xx { 520 # url: http://example.com/*/xx/* 521 # type: xx 522 # } 523 #} 524 525 # お返事の前や後ろにつける字句. 526 reply-prefix: "(FetchTitle) " 527 reply-suffix: " [AR]" 528 529 # デバッグフラグ. 530 #debug: 0 531 #debug-mask: #debug-chan your_nick!~you@example.com 532 #debug-dumpfile: fetchtitle.log 533 534 # NOTE: 535 # 利用するにはCodeReposから 536 # module/Tools/HTTPClient.pm rev.8220 537 # main/Tiarra/Socket/Buffered.pm rev.8219 538 # 以降が必要です. 539} 540 541- Auto::FetchTitle::Plugin::ExtractHeading { 542 # 本文から見出しを抽出するFetchTitleプラグイン. 543 544 # Auto::FetchTitle { ... } での設定. 545 # + Auto::FetchTitle { 546 # plugins { 547 # ExtractHeading { 548 # extra: name1 name2 ... 549 # extra-name1 { 550 # url: http://www.example.com/* 551 # recv_limit: 10*1024 552 # extract: re:<div id="title">(.*?)</div> 553 # } 554 # } 555 # } 556 # } 557} 558 559- Auto::FetchTitle::Plugin::Mixi { 560 # Mixiにログインして見出し抽出出来るようにするFetchTitleプラグイン. 561 562 # Auto::FetchTitle { ... } での設定. 563 # 564 # + Auto::FetchTitle { 565 # mask: #* &mixi http://* 566 # plugins { 567 # Mixi { 568 # mixi-user: xxx 569 # mixi-pass: yyy 570 # } 571 # } 572 # conf-mixi { 573 # filter-mixi { 574 # url: http://mixi.jp/* 575 # url: http://news.mixi.jp/* 576 # type: mixi 577 # timeout: 10 578 # #閲覧可能なコミュニティの指定. 579 # #mixi-community: 0 580 # #閲覧可能なユーザの指定. 581 # #指定したユーザには足跡踏んで見に行きます. 582 # #mixi-friend: 0 583 # #閲覧可能にしていないページを表示したときのメッセージ. 584 # #要求されたページを #(url) で展開できます. 585 # #mixi-noperm-msg: not permitted #(url). 586 # } 587 # } 588 # } 589 # 590 # アカウント情報は plugins Mixi に記述. 591 # mixi-pass には {B}bbbb でBASE64エンコード値も可能. 592 # 593 # newsだけしか使わない場合でも, ログイン処理が必要なので 594 # mixi.jp 内のいくつかのURLはこのプラグインで処理する必要があります. 595 # url: http://news.mixi.jp/* 596 # url: http://mixi.jp/issue_ticket.pl?* 597 # url: http://mixi.jp/login.pl 598 # url: http://mixi.jp/check.pl?* 599 # (それぞれ, ニュースページ, ログイン処理, エラー検出, 途中経路になります.) 600} 601 602- Auto::Im { 603 # 名前が呼ばれると、その発言をim.kayac.comに送信する 604 605 # 反応する人のマスクを指定します。 606 # 省略すると全員に反応します。 607 mask: * *!*@* 608 609 # 反応するキーワードを正規表現で指定します。 610 # 複数指定したい時は複数行指定してください。 611 #regex-keyword: (?i:fugahoge) 612 613 # 反応するキーワードを指定します。 614 # 複数指定したい時は,(コンマ)で区切るか、複数行指定してください。 615 keyword: hoge 616 617 # im.kayac.com に送るメッセージのフォーマットを指定します。 618 # デフォルト値: [tiarra][#(channel):#(nick.now)] #(text) 619 # #(channel) のかわりに #(raw_channel) を利用するとネットワーク名がつきません。 620 format: [tiarra][#(channel):#(nick.now)] #(text) 621 622 # im.kayac.comで登録したユーザ名を入力します。 623 # im.kayac.comについては http://im.kayac.com/#docs を参考にしてください。 624 user: username 625 626 # im.kayac.comで秘密鍵認証を選択した場合は設定してください。 627 # 省略すると認証なしになります。 628 #secret: some secret 629 630 # im.kayac.comでパスワード認証を選択した場合は設定してください。 631 # 省略すると認証なしになります。 632 # secret と両方指定した場合は secret が優先されています。 633 #password: some password 634} 635 636- Auto::Joined { 637 # 特定のチャンネルに誰かがJOINする度に特定のメッセージを発言する。 638 639 # Auto::Aliasを有効にしていれば、エイリアス置換を行ないます。 640 641 # 発言を行なうチャンネルと、その内容を定義します。 642 # #(nick.now)と$(channel)は、それぞれ相手の現在のnickとチャンネル名に置換されます。 643 # 644 # 書式: <チャンネル名> <発言内容> 645 #channel: #チャンネル@ircnet 「#ちゃんねる」に移転しました。 646} 647 648- Auto::MesMail { 649 # 伝言をメールとして送信する。 650 651 # メールアドレスはエイリアスの mail を参照します。 652 653 # Fromアドレス。[default: OSのユーザ名] 654 from: example1@example.jp 655 656 # 送信用のキーワード [default: mesmail_send] 657 send: 速達伝言 658 659 # 使用を許可する人&チャンネルのマスク。 660 # 例はTiarraモード時。 [default: なし] 661 mask: * +*!*@* 662 # [plum-mode] mask: +*!*@* 663 664 # maskで拒否されたときのメッセージ [default: なし] 665 deny: 伝言したくない。 666 667 # 一度に送れる宛先の量 [default: 無制限] 668 max-send-address: 5 669 670 # 宛先を探すエイリアスエントリ [default: なし] 671 alias-key: name 672 alias-key: nick 673 674 # 宛先の人を判別出来なかったときのメッセージ [default: なし] 675 unknown: #(who)さんと言うのは誰ですか? 676 677 # メールの日付形式 678 date: %H:%M:%S 679 680 # エイリアスは見付かったけれどメールアドレスが登録されていなかったときのメッセージ。 [default: なし] 681 #none-address: #(who)さんはアドレスを登録していません。 682 683 # SMTPのホスト [default: localhost] 684 #smtphost: localhost 685 686 # SMTPのポート [default: smtp(25)] 687 #smtpport: 25 688 689 # SMTPで自ホストのFQDN [default: localhost] 690 #smtpfqdn: localhost 691 692 # SMTPのユーザ。指定されれば SMTP Auth を行う [default: なし] 693 #smtpuser: example1 694 695 # SMTPのパスワード [default: 空パスワード('')] 696 #smtppass: test-password 697 698 # 送信するメールの既定件名(エイリアス使用不可) [default: Message from IRC] 699 #subject: Message from IRC 700 701 # 送信するメールの本文 [default: #(date) << #(from.name|from.nick|from.nick.now) >> #(message)] 702 #format: #(date)に#(from.name|from.nick|from.nick.now)さんから#(message)という伝言です。 703 704 # 送信したときのメッセージ。 [default: なし] 705 accept: #(who)さんに#(message)と伝言しておきました。 706 707 # ---- POP before SMTP の指定 ---- 708 # POP before SMTPを使う。 [default: no] 709 #use-pop3: yes 710 711 # POP before SMTPのタイムアウト時間(分)。分からない場合は指定しなくて良い。 [default: 0] 712 #pop3-expire: 4 713 714 # POPのホスト。 [default: localhost] 715 #pop3host: localhost 716 717 # POPのポート。 [default: pop(110)] 718 #pop3port: 110 719 720 # POPのユーザ [default: OSのユーザ名] 721 #pop3user: example1 722 723 # POPのパスワード [default: 空パスワード('')] 724 #pop3pass: test-password 725 726 # ---- エラーメッセージの設定 ---- 727 728 # 一般エラー。 729 # error-[state] と言う形式で詳細エラーメッセージを指定できる。 730 # [state]は、 731 # * mailfrom(メールの送信者を指定しようとしてエラー) 732 # * rcptto(メールの送信先を指定しようとしてエラー) 733 # * norcptto(メールの送信先が全部無くなった) 734 # * data(メールの中身を送信しようとしてエラー) 735 # * finish(メールの中身を送信したらエラー) 736 # がある。特に欲しくなければerror-[state]は指定しなくても構わない。 737 # メッセージを出したくないなら中身の無いエントリを指定すれば良い。 738 # error-[state]が指定されてない場合は代わりに error を使う。 [default: 未定義] 739 740 #error-rcptto: 741 #error-norcptto: #(who)さんには送れませんでした。送信できるメールアドレスがありません。 742 #error-data: メールが送信できません。DATAコマンドに失敗しました。#(line;サーバ応答:%s|;) 743 #error: メール送信エラーです。#(line;サーバ応答:%s|;)#(state; on %s|;) 744 745 # 致命的なエラー。メールに個別なエラーではないので送信者(のprefix)毎に1メッセージ送られる。 746 # fatalerror-[state] 747 # [state]: 748 # * first(接続エラー) 749 # * helo(SMTPセッションを開始出来ない) 750 # がある。特に欲しくなければfatalerror-[state]は指定しなくても構わない。 751 # メッセージを出したくないなら中身の無いエントリを指定すれば良い。 752 # fatalerror-[state]が指定されてない場合は代わりに fatalerror を使う。 [default: 未定義] 753 754 #fatalerror-first: SMTPサーバに接続できません。 755 #fatalerror: SMTPセッションで致命的なエラーがありました。#(line; サーバ応答:%s|;)#(state; on %s|;) 756} 757 758- Auto::Notify { 759 # 名前が呼ばれると、その発言をim.kayac.comに送信する 760 761 # 反応する人のマスクを指定します。 762 # 省略すると全員に反応します。 763 mask: * *!*@* 764 765 # 反応するキーワードを正規表現で指定します。 766 # 複数指定したい時は複数行指定してください。 767 #regex-keyword: (?i:fugahoge) 768 769 # 反応するキーワードを指定します。 770 # 複数指定したい時は,(コンマ)で区切るか、複数行指定してください。 771 keyword: hoge 772 773 # メッセージのフォーマットを指定します。 774 # デフォルト値: [tiarra][#(channel):#(nick.now)] #(text) 775 # #(channel) のかわりに #(raw_channel) を利用するとネットワーク名がつきません。 776 format: [tiarra][#(channel):#(nick.now)] #(text) 777 778 # 使用するブロックを指定します 779 #blocks: im prowl 780 781 im { 782 783 # 通知先のタイプを指定します。 784 type: im_kayac 785 786 # im.kayac.comで登録したユーザ名を入力します。 787 # im.kayac.comについては http://im.kayac.com/#docs を参考にしてください。 788 user: username 789 790 # im.kayac.comで秘密鍵認証を選択した場合は設定してください。 791 # 省略すると認証なしになります。 792 #secret: some secret 793 794 # im.kayac.comでパスワード認証を選択した場合は設定してください。 795 # 省略すると認証なしになります。 796 # secret と両方指定した場合は secret が優先されています。 797 #password: some password 798 799 } 800 801 prowl { 802 803 # 通知先のタイプを指定します。 804 type: prowl 805 806 # 通知先ごとにフォーマットを指定できます。 807 # この例では先頭に時刻を追加しています。 808 #format: #(date:%H:%M:%S) [#(channel):#(nick.now)] #(text) 809 810 # Prowl で表示された apikey を入力します。 811 # Prowl については http://prowl.weks.net/ を参考にしてください。 812 #apikey: XXXXXX 813 814 # http://forums.cocoaforge.com/viewtopic.php?f=45&t=20339 815 priority: 0 816 application: tiarra 817 event: keyword 818 819 } 820} 821 822- Auto::Oper { 823 # 特定の文字列を発言した人を+oする。 824 825 # Auto::Aliasを有効にしていれば、エイリアス置換を行ないます。 826 827 # +oを要求する文字列(マスク)を指定します。 828 request: なると寄越せ 829 830 # チャンネルオペレータ権限を要求した人と要求されたチャンネルが 831 # ここで指定したマスクに一致しなかった場合は 832 # denyで指定した文字列を発言し、+oをやめます。 833 # 省略された場合は誰にも+oしません。 834 # 書式は「チャンネル 発言者」です。 835 # マッチングのアルゴリズムは次の通りです。 836 # 1. チャンネル名にマッチするmask定義を全て集める 837 # 2. 集まった定義の発言者マスクを、定義された順にカンマで結合する 838 # 3. そのようにして生成されたマスクで発言者のマッチングを行ない、結果を+o可能性とする。 839 # 例1: 840 # mask: *@2ch* *!*@* 841 # mask: #*@ircnet* *!*@*.hoge.jp 842 # この例ではネットワーク 2ch の全てのチャンネルで誰にでも +o し、 843 # ネットワーク ircnet の # で始まる全てのチャンネルでホスト名 *.hoge.jp の人に+oします。 844 # #*@ircnetだと「#hoge@ircnet:*.jp」などにマッチしなくなります。 845 # 例2: 846 # mask: #hoge@ircnet -*!*@*,+*!*@*.hoge.jp 847 # mask: * +*!*@* 848 # 基本的に全てのチャンネルで誰にでも +o するが、例外的に#hoge@ircnetでは 849 # ホスト名 *.hoge.jp の人にしか +o しない。 850 # この順序を上下逆にすると、全てのチャンネルで全ての人を +o する事になります。 851 # 何故なら最初の* +*!*@*が全ての人にマッチするからです。 852 mask: * *!*@* 853 854 # +oを要求した人を実際に+oする時、ここで指定した発言をしてから+oします。 855 # #(name|nick)のようなエイリアス置換を行います。 856 # エイリアス以外でも、#(nick.now)を相手のnickに、#(channel)を 857 # そのチャンネル名にそれぞれ置換します。 858 message: 了解 859 860 # +oを要求されたが+oすべき相手ではなかった場合の発言。 861 # 省略されたら何も喋りません。 862 deny: 断わる 863 864 # +oを要求されたが相手は既にチャンネルオペレータ権限を持っていた場合の発言。 865 # 省略されたらdenyに設定されたものを使います。 866 oper: 既に@を持っている 867 868 # +oを要求されたが自分はチャンネルオペレータ権限を持っていなかった場合の発言。 869 # 省略されたらdenyに設定されたものを使います。 870 not-oper: @が無い 871 872 # チャンネルに対してでなく自分に対して+oの要求を行なった場合の発言。 873 # 省略されたらdenyに設定されたものを使います。 874 private: チャンネルで要求せよ 875 876 # チャンネルの外から+oを要求された場合の発言。+nチャンネルでは起こりません。 877 # 省略されたらdenyに設定されたものを使います。 878 out: チャンネルに入っていない 879} 880 881- Auto::Outputz { 882 # チャンネルの発言文字数を outputz に送信する 883 884 # 復活の呪文。 885 key: some secret 886 887 # 送信対象にするコマンドの設定。 888 # 省略された場合は PRIVMSG 。 889 # パラメータ1が送信先、パラメータ2が本文でなければ動作しないので、 890 # 動作するコマンドは PRIVMSG/NOTICE/TOPIC/PART 程度。 891 #command: PRIVMSG 892 893 # 各チャンネルのURIの設定。 894 # 記述された順序で検索されるので、全てのチャンネルにマッチする"*"などは最後に書かなければならない。 895 # フォーマットは次の通り。 896 # channel: <URI> (<チャンネル名> / 'priv')@<ネットワーク名> 897 # #(channel) はチャンネル名に、 #(channel_short) はネットワークなしの 898 # チャンネル名に、 #(network) はネットワーク名にそれぞれ置き換えられる。 899 # また、危険な文字は自動的にエスケープされる。 900 channel: http://#(network).irc.example.com/#(channel_short) * 901} 902 903- Auto::Random { 904 # 特定の発言に反応してランダムな発言をします。 905 906 # Auto::Aliasを有効にしていれば、エイリアス置換を行ないます。 907 908 # 使用するブロックの定義。 909 blocks: wimikuji 910 911 wimikuji { 912 # ランダムに発言するメッセージの書かれたファイルと、その文字コードを指定します。 913 # ファイルの中では一行に一つのメッセージを書いて下さい。 914 file: random.txt 915 file-encoding: euc 916 917 # 反応する発言を表すマスクを指定します。 918 request: ゐみくじ 919 920 # メッセージの登録数を返答するキーワードを指定します。 921 count-query: ゐみくじ登録数 922 923 # メッセージの登録数を返答するときの反応を指定します。 924 # formatで指定できるものと同じです。#(count)は登録数になります。 925 count-format: ゐみくじは#(count)件登録されています。 926 927 # ランダムなメッセージを発言する際のフォーマットを指定します。 928 # エイリアス置換が有効です。#(message)、#(nick.now)、#(channel)は 929 # それぞれメッセージ内容、相手のnick、チャンネル名に置換されます。 930 # 何も登録されていないときのために、#(message|;無登録)のように指定すると良いでしょう。 931 format: #(name|nick.now)の運命は#(message) 932 933 # 反応する人のマスク。 934 mask: * *!*@* 935 # plum: mask: *!*@* 936 937 # メッセージが追加されたときの反応を指定します。 938 # formatで指定できるものと同じです。#(message)は追加されたメッセージになります。 939 added-format: #(name|nick.now): ゐみくじ #(message) を追加しました。 940 941 # メッセージが削除されたときの反応を指定します。 942 # formatで指定できるものと同じです。#(message)は削除されたメッセージになります。 943 removed-format: #(name|nick.now): ゐみくじ #(message) を削除しました。 944 945 # 発言に反応する確率を指定します。百分率です。省略された場合は100と見做されます。 946 rate: 100 947 948 # メッセージを追加するキーワードを指定します。 949 # ここで指定したキーワードを発言すると、新しいメッセージを追加します。 950 # 実際の追加方法は「<addで指定したキーワード> <追加するメッセージ>」です。 951 add: ゐみくじ追加 952 953 # メッセージを削除するキーワードを指定します。 954 # 実際の削除方法は「<removeで指定したキーワード> <削除するキーワード>」です。 955 remove: ゐみくじ削除 956 957 # addとremoveを許可する人。省略された場合は誰も変更できません。 958 modifier: * *!*@* 959 # plum: modifier: *!*@* 960 } 961} 962 963- Auto::Reply { 964 # 特定の発言に反応して発言をします。 965 966 # Auto::Aliasを有効にしていれば、エイリアス置換を行ないます。 967 968 # 使用するブロックの定義。 969 # 省略すると std を使用. 970 # 複数個の blocks の指定も可能. 971 blocks: std 972 973 std { 974 # 1つの応答ブロックの定義. 975 # 一応全ての項目が省略可能ではあるけれど, 976 # 通常は最低限 file と file-encoding を使用する. 977 # IRCで応答の追加削除等を行いたいときにはそれに更に設定を追加する形. 978 # (IRC上で応答の追加削除は行うが保存はしない時に限ってfileを省略可能.) 979 980 # 機能: 981 # - 通常応答(mask) 982 # - 登録数確認(count-query/mask) 983 # - 反応確認(request/modifier) 984 # - 反応追加(add/modifier) 985 # - 反応削除(remove/modifier) 986 # 通常応答以外は設定を省略することで機能を無効にできます。 987 988 # データファイルと文字コードを指定します。 989 # ファイルの中では一行に一つの"反応マスク:メッセージ"を書いて下さい。 990 file: reply.txt 991 file-encoding: euc 992 993 # 1つの発言で複数の反応マスクにマッチする場合, 994 # どれにマッチするかは未定義です. 995 # ただ, どちらか1つにのみマッチします. 996 997 # 同じ反応マスクに複数個のメッセージが記述してあった場合の処理. 998 # multivalue: random #==> ランダムに1つ選択. 999 # multivalue: all #==> 全て返す. 1000 # multivalue: seq #==> 順番に1つずつ返す. 1001 # 省略時及び認識できなかったときは random. 1002 #multivalue: random 1003 # 返す最大行数. 1004 # multivalue: all の時のみ有効. 1005 # (それ以外の時は1行しか返さない) 1006 # デフォルトは 5 行まで. 1007 #multivalue-limit: 5 1008 1009 # 反応する人のマスク。 1010 # 通常応答と登録数の返答時にチェックされる。 1011 mask: * *!*@* 1012 # plum: mask: *!*@* 1013 1014 # マッチした1つの反応マスクが実際に発言に反応する確率を指定します。 1015 # 百分率です。省略された場合は100と見做されます。 1016 rate: 100 1017 1018 # メッセージの登録数を返答するキーワードを指定します。 1019 # 省略するとこの機能は無効になります。 1020 # 指定したときだけこの機能が有効になります。 1021 # mask で許可された人(通常応答を返す人)が使えます。 1022 count-query: 反応登録数 1023 1024 # メッセージの登録数を返答するときの反応を指定します。 1025 # formatで指定できるものと同じです。#(count)は登録数になります。 1026 # count-query を指定したときのみ必要。 1027 count-format: 反応は#(count)件登録されています。 1028 1029 # メッセージを追加するキーワードを指定します。 1030 # ここで指定したキーワードを発言すると、新しいメッセージを追加します。 1031 # 実際の追加方法は「<addで指定したキーワード> <追加するメッセージ>」です。 1032 # 省略するとこの機能は無効になります。 1033 # 指定したときだけこの機能が有効になります。 1034 # modifier で許可された人だけ使えます。 1035 #add: 反応追加 1036 1037 # 反応が追加されたときの反応を指定します。 1038 # formatで指定できるものと同じです。#(message)は追加されたメッセージになります。 1039 added-format: #(name|nick.now): #(key) に対する反応 #(message) を追加しました。 1040 1041 # メッセージを削除するキーワードを指定します。 1042 # 実際の削除方法は「<removeで指定したキーワード> <削除するキーワード>」です。 1043 # 省略するとこの機能は無効になります。 1044 # 指定したときだけこの機能が有効になります。 1045 # modifier で許可された人だけ使えます。 1046 #remove: 反応削除 1047 1048 # メッセージが削除されたときの反応を指定します。 1049 # formatで指定できるものと同じです。#(message)は削除されたメッセージになります。 1050 removed-format: #(name|nick.now): #(key) #(message;に対する反応 %s|;) を #(count) 件削除しました。 1051 1052 # 反応の確認を行うためのキーワードを指定します。 1053 # 通常応答と違って, multivalue-limit の制限を受けずに全てのマッチした応答を返します。 1054 # 実際の指定方法は、「<requestで指定したキーワード> <チェックしたい発言>」です。 1055 # 省略するとこの機能は無効になります。 1056 # 指定したときだけこの機能が有効になります。 1057 # modifier で許可された人だけ使えます。 1058 request: 反応チェック 1059 1060 # request に反応するときのフォーマットを指定します。 1061 # #(key) がキーワード、 #(message) が発言に置換されます。 1062 # request を指定したときのみ必要。 1063 reply-format: 「#(key)」という発言に「#(message)」と反応します。 1064 1065 # request に反応する最大個数(反応マスクの数)を指定します。 1066 # (1つの反応マスクに対応するメッセージの数は制限されません。) 1067 # あまり大きな値を指定すると、アタックが可能になったり、ログが流れて邪魔なので注意してください。 1068 # 通常の反応には関与しません。また、応答の行数ではありません。 1069 max-reply: 5 1070 1071 # 編集系コマンド, add とremove と request を許可する人。 1072 # 省略された場合は「* *!*@*」(全員許可)と見做します。 1073 modifier: * *!*@* 1074 1075 # 正規表現拡張を許可するか。省略された場合は禁止します。 1076 use-re: 1 1077 } 1078} 1079 1080- Auto::Response { 1081 # データファイルの指定にしたがって反応する。 1082 1083 # 大量の反応データを定義するのに向いています。 1084 1085 # データファイルのフォーマット 1086 # | pattern: re:^(こん(に)?ちは) 1087 # | rate: 90 1088 # | mask: * *!*@* 1089 # | #plum: mask: *!*@* 1090 # | response: こんにちは。 1091 # | response: いらっしゃいませ。 1092 # | 1093 # | pattern: おやすみ 1094 # | rate: 20 1095 # | response: おやすみなさい。 1096 # patternは一行しか書けません。(手抜き 1097 # maskもrateも省略できます。省略した場合はmaskは全員、rateは100となります。 1098 # responseは複数書いておけばランダムに選択されます。 1099 1100 # データファイル 1101 file: response.txt 1102 1103 # 文字コード 1104 charset: euc 1105 1106 # 使用を許可する人&チャンネルのマスク。 1107 mask: * *!*@* 1108 # plum: mask: +*!*@* 1109} 1110 1111- CTCP::ClientInfo { 1112 # CTCP CLIENTINFOに応答する。 1113 1114 # CTCP::Versionのintervalと同じ。 1115 interval: 3 1116} 1117 1118- CTCP::DCC::RewriteAddress { 1119 # クライアントが送信した CTCP DCC のアドレスを変換する。 1120 1121 # CTCP DCC に指定されているアドレスを、 Tiarra で取得したものに 1122 # 書き換えます。(EXPERIMENTAL) 1123 # 1124 # IPv4 のみサポートしています。 1125 # 1126 # このモジュールは一旦 CTCP DCC メッセージを破棄するので、 1127 # 別のクライアントには送信されません。 1128 1129 # 変換する DCC タイプ。 [デフォルト値: CHAT SEND] 1130 type: CHAT SEND 1131 1132 # 変換用アドレスの取得方法を選択する。デフォルト値はありません。 1133 # 以下の取得方法(server-socket client-socket dns http)から 1134 # 必要なもの(複数可)を指定してください。 1135 resolver: client-socket server-socket dns http 1136 1137 1138 # 取得方法と設定 1139 # なにも設定がないときはブロック自体を省略することもできます。 1140 1141 server-socket { 1142 # サーバソケットのローカルアドレスを取ります。 1143 # client <-> tiarra[this address] <-> server 1144 } 1145 1146 client-socket { 1147 # クライアントソケットのリモートアドレスを取ります。 1148 # client [this address]<-> Tiarra <-> server 1149 } 1150 1151 dns { 1152 # DNS を引いて決定します。IPアドレスの指定も可能です。 1153 host: example.com 1154 } 1155 1156 http { 1157 # 現状では単純な GET しかサポートしていません。 1158 1159 # アクセス先 URL 1160 url: http://checkip.dyndns.org/ 1161 1162 # IP アドレス取得用 regex 1163 regex: Current IP Address: (\d+\.\d+\.\d+\.\d+) 1164 } 1165 1166 # リゾルバの選び方 1167 # 1168 # * Tiarra を動作させているサーバとインターネットの間にルータ等があり、 1169 # グローバルアドレスがない場合 1170 # *-socket は役に立ちません。 http を利用してください。 1171 # 適当な DDNS を持っていればdns も良いでしょう。 1172 # 1173 # * Tiarra がレンタルサーバなどLAN上にないサーバで動作している場合 1174 # server-socket, http は役に立ちません。 1175 # client-socket がお勧めです。 1176 # 1177 # * Tiarra がLAN上にあり、グローバルアドレスのついているホストで 1178 # 動作している場合 1179 # client-socket は役に立ちません。 1180 # server-socket がお勧めです。 1181} 1182 1183- CTCP::Ping { 1184 # CTCP PINGに応答する。 1185 1186 # CTCP::Versionのintervalと同じ。 1187 interval: 3 1188} 1189 1190- CTCP::Time { 1191 # CTCP TIMEに応答する。 1192 1193 # CTCP::Versionのintervalと同じ。 1194 interval: 3 1195} 1196 1197- CTCP::UserInfo { 1198 # CTCP USERINFOに応答する。 1199 1200 # CTCP::Versionのintervalと同じ。 1201 interval: 3 1202 1203 # USERINFOとして返すメッセージ。 1204 message: テスト 1205} 1206 1207+ CTCP::Version { 1208 # CTCP VERSIONに応答する。 1209 1210 # 連続したCTCPリクエストに対する応答の間隔。単位は秒。 1211 # 例えば3秒に設定した場合、一度応答してから3秒間は 1212 # CTCPに一切応答しなくなる。デフォルトは3。 1213 # 1214 # なお、CTCP受信時刻の記録は、全てのCTCPモジュールで共有される。 1215 # 例えばCTCP VERSIONを送った直後にCTCP CLIENTINFOを送ったとしても、 1216 # CTCP::ClientInfoのintervalで設定された時間を過ぎていなければ 1217 # 後者は応答しない。 1218 interval: 3 1219} 1220 1221- Channel::Freeze { 1222 # 特定のチャンネルの発言を、一時的に受信するのをやめる。 1223 1224 # ログを取っているなら、ログには記録される。 1225 1226 # チャンネルの凍結に用いるコマンド名。 1227 # 省略時は freeze であり、/freeze #channel@network のように使う。 1228 # チャンネル名を省略すると、現在フリーズされているチャンネルのリストを表示する。 1229 freeze-command: freeze 1230 1231 # 凍結解除に用いるコマンド名。 1232 # 省略時は defrost であり、/defrost #channel@network のように使う。 1233 defrost-command: defrost 1234 1235 # 凍結しているチャンネルが存在する時、一定時間毎にその旨を報告する事も可能。 1236 # この機能は凍結した事を忘れないようにする為にある。 1237 # 単位は分、デフォルトはゼロ(報告しない)。 1238 reminder-interval: 30 1239} 1240 1241- Channel::Ignore { 1242 # 指定されたチャンネルの存在を、様々なメッセージから消去する。 1243 1244 # 対象となったチャンネルのJOIN、PART、INVITE、QUIT、NICK、NAMES、NJOINは消去される。 1245 1246 # 注意点 1247 # - この機能はまだ実装途中です。いろいろな不具合があるかもしれません。むしろきっとあります。 1248 # - サーバがわとの通信に割り込みますのでログにもとられません。 1249 # - この機能を使っている Tiarra より上流に multi-server-mode な Tiarra を置かないでください。 1250 1251 # チャンネルの定義。 1252 # また、privの場合は「priv@ネットワーク名」という文字列をチャンネル名の代わりとしてマッチングを行なう。 1253 # 書式: mask: <チャンネルのマスク> 1254 mask: #example@example 1255} 1256 1257- Channel::Join::Connect { 1258 # サーバーに初めて接続した時、指定したチャンネルに入るモジュール。 1259 1260 # 書式: <チャンネル1>[,<チャンネル2>,...] [<チャンネル1のキー>,...] 1261 # コンマの直後のスペースは無視されます。 1262 # 1263 # 例: 1264 # 「#aaaaa@ircnet」に「aaaaa」というキーで入る。 1265 #channel: #aaaaa@ircnet aaaaa 1266 # 1267 # 「#aaaaa@ircnet」、「#bbbbb@ircnet:*.jp」、「#ccccc@ircnet」、「#ddddd@ircnet」の4つのチャンネルに入る。 1268 #channel: #aaaaa@ircnet,#bbbbb@ircnet:*.jp, #ccccc@ircnet 1269 #channel: #ddddd@ircnet 1270 1271 # join 送出の間隔(秒) 1272 # この設定は obsolete です。 general/join-interval を利用してください。 1273 # 設定されていた場合は general/join-interval に優先されます。 1274 #interval: 1 1275} 1276 1277- Channel::Join::Invite { 1278 # 招待されたらそのチャンネルに入る。 1279 1280 # 許可するユーザ/チャンネルのマスク。 1281 mask: * *!*@* 1282 # plum: *!*@* 1283 1284 # 招待されたチャンネルに流すメッセージのフォーマット。 1285 #message: こんばんわ〜。 1286} 1287 1288- Channel::Join::Kicked { 1289 # 特定のチャンネルからkickされた時に、自動で入りなおす。 1290 1291 # 対象となるチャンネル名のマスク 1292 channel: * 1293} 1294 1295- Channel::Mode::Get { 1296 # チャンネルにJOINした時、そのチャンネルのモードを取得します。 1297 1298 # Channel::Mode::Set等が正しく動くためには 1299 # チャンネルのモードをTiarraが把握しておく必要があります。 1300 # 自動的にモードを取得するクライアントであれば必要ありませんが、 1301 # そうでなければこのモジュールを使うべきです。 1302 1303 # 設定項目は無し。 1304} 1305 1306- Channel::Mode::Oper::Grant { 1307 # 特定のチャンネルに特定の人間がjoinした時に、自分がチャンネルオペレータ権限を持っていれば+oする。 1308 1309 # splitからの復帰などで+o対象の人が一度に大量に入って来ても+oは少しずつ実行します。 1310 # Excess Floodにはならない筈ですが、本格的な防衛BOTに使える程の物ではありません。 1311 1312 # 対象の人間がjoinしてから実際に+oするまで何秒待つか。 1313 # 省略されたら待ちません。 1314 # 5-10 のように指定されると、その値の中でランダムに待ちます。 1315 wait: 2-5 1316 1317 # チャンネルと人間のマスクを定義。Auto::Operと同様。 1318 #mask: * example!~example@*.example.ne.jp 1319} 1320 1321- Channel::Mode::Set { 1322 # チャンネルを作成した時に自動的にモードを設定するモジュール。 1323 1324 # 書式は<チャンネル名にマッチするマスク> <設定するモード>[,<設定するモード>,...]です。 1325 # #IRC談話室@ircnetなら+t+nを、それ以外なら+nを設定する例。 1326 #channel: #IRC談話室@ircnet +t 1327 #channel: * +n 1328 # LimeChat 標準設定を模倣する設定例。 1329 #channel: * +sn 1330} 1331 1332- Channel::Rejoin { 1333 # チャンネルオペレータ権限を無くしたとき、一人ならjoinし直す。 1334 1335 # +チャンネルや+aされているチャンネル以外でチャンネルオペレータ権限を持たずに 1336 # 一人きりになった時、そのチャンネルの@を復活させるために自動的にjoinし直すモジュール。 1337 # トピック、モード、banリスト等のあらゆるチャンネル属性をも保存します。 1338 1339 # +b,+I,+eリストの復旧を行なうかどうか。 1340 # あまりに長いリストを取得するとMax Send-Q Exceedで落とされるかも知れません。 1341 save-lists: 1 1342} 1343 1344- Client::Cache { 1345 # データをキャッシュしてサーバに問い合わせないようにする 1346 1347 # キャッシュを使用しても、使われるのは接続後最初の一度だけです。 1348 # 二度目からは通常通りにサーバに問い合わせます。 1349 # また、クライアントオプションの no-cache を指定すれば動きません。 1350 1351 # mode キャッシュを使用するか 1352 use-mode-cache: 1 1353 1354 # who キャッシュを使用するか 1355 use-who-cache: 1 1356} 1357 1358+ Client::Conservative { 1359 # サーバが送信するような IRC メッセージを作成するようにする 1360 1361 # サーバが実際に送信しているようなメッセージにあわせるようにします。 1362 # 多くのクライアントの設計ミスを回避でき(ると思われ)ます。 1363} 1364 1365- Client::Cotton { 1366 # Cotton の行うおかしな動作のいくつかを無視する 1367 1368 # 該当クライアントのオプション client-type に cotton や unknown と指定するか、 1369 # Client::GetVersion を利用してクライアントのバージョンを取得するように 1370 # してください。 1371 1372 # part shield (rejoin 時に自動で行われる part の無視)を使用するか 1373 use-part-shield: 1 1374} 1375 1376- Client::Eval { 1377 # クライアントから Perl 式を実行できるようにする。 1378 1379 # eval を実行するコマンド名。省略されるとコマンドを追加しません。 1380 # この時コマンドはTiarraが握り潰すので、IRCプロトコル上で定義された 1381 # コマンド名を設定すべきではありません。 1382 command: eval 1383 1384 # hex eval を実行するコマンド名。省略されるとコマンドを追加しません。 1385 # この時コマンドはTiarraが握り潰すので、IRCプロトコル上で定義された 1386 # コマンド名を設定すべきではありません。 1387 hex-command: hexeval 1388 1389 # 表示する最大行数を指定します。省略するとすべての行を表示します。 1390 max-line: 30 1391} 1392 1393+ Client::GetVersion { 1394 # クライアントに CTCP Version を発行してバージョン情報を得る 1395 1396 # オプションはいまのところありません。 1397 # (開発者向け情報: 取得した情報は remark の client-version に設定され、 1398 # Client::Guess から使用されます。) 1399} 1400 1401- Client::List { 1402 # Clientの一覧を取得. 1403 1404 # 接続しているクライアントを一覧. 1405 # /clientlist を投げると, その時に接続しているクライアントの一覧を返す. 1406 # 出力例: 1407 # clientlist 1408 # *** 1 client 1409 # *** [1] 127.0.0.1:23695 1410 1411 1412 # 一覧を返すトリガーとするコマンド. 1413 #command: clientlist 1414} 1415 1416- Client::PatchworkMessage { 1417 # IRC メッセージにちょっと変更を加えて、クライアントのバグを抑制する 1418 1419 # 特に注意書きがない場合はデフォルトで有効です。 1420 # また、 Client::GetVersion も同時に入れておくと便利です。 1421 # とりあえず obsolete です。このモジュールで実装されていた機能は 1422 # Client::Conservative によって実現できます。 1423 # Client::Conservative で実装してはいけないようなものがあった場合のみ 1424 # このモジュールで対処します。 1425 1426 # WoolChat: 1427 # 対応しているメッセージ: 1428 # NICK(コロンが必須) 1429 # 説明: 1430 # NICK は接続直後にも発行されるため、 Client::GetVersion での判別まで 1431 # 待てません。該当クライアントのオプション client-type に woolchat と 1432 # 指定してください。実名欄に $client-type=woolchat$ と書けば OK です。 1433 enable-woolchat: 1 1434 1435 # X-Chat: 1436 # 対応しているメッセージ: 1437 # RPL_WHOISUSER(コロンが必須) 1438 # 説明: 1439 # WHOIS の realname にスペースが入っていないと最初の一文字が削られます。 1440 enable-xchat: 1 1441} 1442 1443- Client::ProtectMyself { 1444 # 意図せず自分のニックが変わってしまうのを防止する 1445 1446 # {nick,part,quit,join}-format: それぞれのメッセージのフォーマットを指定します。 1447 # {nick,user,host,prefix}.now などはどこでも使えます。 1448 # そのほかには 1449 # target : 表示するチャンネル(またはニック)。 1450 # nick.new : nick-format のみ。新しいニック。 1451 # message : part と quit 。メッセージ。 1452 1453 nick-format: Nick changed #(nick.now) -> #(nick.new) 1454 part-format: Part #(nick.now) (#(message)) from #(target) 1455 quit-format: Quit #(nick.now) (#(message)) 1456 join-format: Join #(nick.now) (#(prefix.now)) to #(target) 1457} 1458 1459- Client::Rehash { 1460 # 全チャンネル分の names の内部キャッシュをクライアントに送信する。 1461 1462 # もともとはクライアントの再初期化目的に作ったのですが、 names を送信しても 1463 # 更新されないクライアントが多いので、主に multi-server-mode な Tiarra の 1464 # 下にさらに Tiarra をつないでいる人向けにします。 1465 1466 # names でニックリストを更新してくれるクライアント: 1467 # Tiarra 1468 # してくれないクライアント: (括弧内は確認したバージョンまたは注釈) 1469 # LimeChat(1.18) 1470 1471 # nick rehash に使うコマンドを指定します。 1472 # 第二パラメータとして現在クライアントが認識している nick を指定してください。 1473 command-nick: rehash-nick 1474 1475 # names rehash に使うコマンドを指定します。 1476 command-names: rehash-names 1477 1478 # チャンネルとチャンネルの間のウェイトを指定します。 1479 interval: 2 1480} 1481 1482- Client::ShowNick { 1483 # show network 1484 1485} 1486 1487- Debug::Core { 1488 # Tiarra の内部構造の追跡. 1489 1490 # Tiarra の内部構造を出力します. 1491 1492 # トリガー用コマンド. 1493 # デフォルトは debugcore 1494 command: debugcore 1495 1496 # [top commands] 1497 # help - show this usage. 1498 # bbs - show BulletinBoard info. 1499 # socket - show internal sockets. 1500 # module - show module info. 1501 1502 # [sub commands] 1503 # help: 1504 # bbs: 1505 # keys - show keys in BulletinBoard. 1506 # socket: 1507 # help - show this usage. 1508 # list - show installed socket. 1509 # get - show socket in detail. 1510 # uninstall - uninstall detached socket. 1511 # module: 1512 # help - show this usage. 1513 # summary - show module summary. 1514 # list - show module list in detail. 1515 # dep - show module dependency. 1516} 1517 1518- Debug::RawLog { 1519 # 標準出力にクライアントやサーバとの通信をダンプする。 1520 1521 # 0 または省略で表示しない。 1 で表示する。 1522 # クライアントオプションの logname によって、ダンプに使う名前を指定できます。 1523 1524 # サーバからの入力 1525 enable-server-in: 1 1526 1527 # サーバへの出力 1528 enable-server-out: 1 1529 1530 # クライアントからの入力 1531 enable-client-in: 0 1532 1533 # クライアントへの出力 1534 enable-client-out: 0 1535 1536 # PING/PONG を無視する 1537 ignore-ping: 1 1538 1539 # NumericReply の名前を解決して表示する(ちゃんとした dump では無くなります) 1540 resolve-numeric: 1 1541} 1542 1543- Log::Channel { 1544 # チャンネルやprivのログを取るモジュール。 1545 1546 # Log系のモジュールでは、以下のように日付や時刻の置換が行なわれる。 1547 # %% : % 1548 # %Y : 年(4桁) 1549 # %m : 月(2桁) 1550 # %d : 日(2桁) 1551 # %H : 時間(2桁) 1552 # %M : 分(2桁) 1553 # %S : 秒(2桁) 1554 1555 # ログを保存するディレクトリ。Tiarraが起動した位置からの相対パス。~指定は使えない。 1556 directory: log 1557 1558 # ログファイルの文字コード。省略されたらjis。 1559 charset: utf8 1560 1561 # 各行のヘッダのフォーマット。省略されたら'%H:%M'。 1562 header: %H:%M:%S 1563 1564 # ファイル名のフォーマット。省略されたら'%Y.%m.%d.txt' 1565 filename: %Y.%m.%d.txt 1566 1567 # ログファイルのモード(8進数)。省略されたら600 1568 mode: 600 1569 1570 # ログディレクトリのモード(8進数)。省略されたら700 1571 dir-mode: 700 1572 1573 # ログを取るコマンドを表すマスク。省略されたら記録出来るだけのコマンドを記録する。 1574 command: privmsg,join,part,kick,invite,mode,nick,quit,kill,topic,notice 1575 1576 # PRIVMSGとNOTICEを記録する際に、自分の発言と他人の発言でフォーマットを変えるかどうか。1/0。デフォルトで1。 1577 distinguish-myself: 1 1578 1579 # 各ログファイルを開きっぱなしにするかどうか。 1580 # このオプションは多くの場合、ディスクアクセスを抑えて効率良くログを保存しますが 1581 # ログを記録すべき全てのファイルを開いたままにするので、50や100のチャンネルを 1582 # 別々のファイルにログを取るような場合には使うべきではありません。 1583 # 万一 fd があふれた場合、クライアントから(またはサーバへ)接続できない・ 1584 # 新たなモジュールをロードできない・ログが全然できないなどの症状が起こる可能性が 1585 # あります。limit の詳細については OS 等のドキュメントを参照してください。 1586 #keep-file-open: 1 1587 1588 # keep-file-open 時に各行ごとに flush するかどうか。 1589 # open/close の負荷は気になるが、ログは失いたくない人向け。 1590 # keep-file-open が有効でないなら無視され(1になり)ます。 1591 #always-flush: 0 1592 1593 # keep-file-openを有効にした場合、発言の度にログファイルに追記するのではなく 1594 # 一定の分量が溜まってから書き込まれる。そのため、ファイルを開いても 1595 # 最近の発言はまだ書き込まれていない可能性がある。 1596 # syncを設定すると、即座にログをディスクに書き込むためのコマンドが追加される。 1597 # 省略された場合はコマンドを追加しない。 1598 sync: sync 1599 1600 # 各チャンネルの設定。チャンネル名の部分はマスクである。 1601 # 個人宛てに送られたPRIVMSGやNOTICEはチャンネル名"priv"として検索される。 1602 # 記述された順序で検索されるので、全てのチャンネルにマッチする"*"などは最後に書かなければならない。 1603 # 指定されたディレクトリが存在しなかったら、Log::Channelはそれを勝手に作る。 1604 # フォーマットは次の通り。 1605 # channel: <ディレクトリ名> (<チャンネル名> / 'priv') 1606 # 例: 1607 # filename: %Y.%m.%d.txt 1608 # channel: IRCDanwasitu #IRC談話室@ircnet 1609 # channel: others * 1610 # この例では、#IRC談話室@ircnetのログはIRCDanwasitu/%Y.%m.%d.txtに、 1611 # それ以外(privも含む)のログはothers/%Y.%m.%d.txtに保存される。 1612 # #(channel) はチャンネル名に展開される。 1613 # (古いバージョンだと展開されずにそのままディレクトリ名になってしまいます。) 1614 # IRCのチャンネル名は大文字小文字が区別されず、サーバからは各送信者が指定した通りの 1615 # チャンネル名が送られてきます。そのため、大文字小文字が区別されるファイルシステムでは 1616 # 同じチャンネルが別々のディレクトリに作られることになります。 1617 # この問題を回避するため、チャンネル名を小文字に統一した #(lc_channel) が利用できます。 1618 channel: priv priv 1619 channel: #(lc_channel) * 1620 #channel: others * 1621 1622 # ファイル名のエンコーディング. 1623 # 指定可能な値は, utf8, sjis, euc, jis, ascii. 1624 # ascii は実際には utf8 と同等で8bit部分が全てquoted-printableされる. 1625 # デフォルトはWindowsではsjis, それ以外では utf8. 1626 #filename-encoding: utf8 1627} 1628 1629- Log::ChannelList { 1630 # チャンネルリストをテンプレートに沿って HTML 化します。 1631 1632 # list コマンドが実行された際に動作します。 1633 1634 # 出力したいファイル名、ネットワーク名、使う設定のブロックを指定します。。 1635 networks: ircnet.html ircnet ircnet 1636 1637 1638 ircnet { 1639 # テンプレートファイルを指定します。 1640 template: channellist.html.tmpl 1641 1642 # 出力とテンプレートファイルの文字コードを指定します。 1643 charset: euc 1644 1645 # 取得を開始/終了した時刻のフォーマットを指定します。 1646 fetch-starttime: %Y年%m月%d日 %H時%M分(日本時間) 1647 fetch-endtime: %Y年%m月%d日 %H時%M分(日本時間) 1648 1649 # 表示するチャンネルの mask を指定します。 1650 mask: * 1651 mask: -re:^\&(AUTH|SERVICES|LOCAL|HASH|SERVERS|NUMERICS|CHANNEL|KILLS|NOTICES|ERRORS) 1652 1653 # 出力するファイルのモードを指定します。 1654 mode: 644 1655 } 1656} 1657 1658- Log::Raw { 1659 # サーバとの生の通信を保存する 1660 1661 # Log系のモジュールでは、以下のように日付や時刻の置換が行なわれる。 1662 # %% : % 1663 # %Y : 年(4桁) 1664 # %m : 月(2桁) 1665 # %d : 日(2桁) 1666 # %H : 時間(2桁) 1667 # %M : 分(2桁) 1668 # %S : 秒(2桁) 1669 1670 # ログを保存するディレクトリ。Tiarraが起動した位置からの相対パス。~指定は使えない。 1671 directory: rawlog 1672 1673 # 各行のヘッダのフォーマット。省略されたら'%H:%M'。 1674 header: %H:%M:%S 1675 1676 # ファイル名のフォーマット。省略されたら'%Y.%m.%d.txt' 1677 filename: %Y-%m-%d.txt 1678 1679 # ログファイルのモード(8進数)。省略されたら600 1680 mode: 600 1681 1682 # ログディレクトリのモード(8進数)。省略されたら700 1683 dir-mode: 700 1684 1685 # 使っている文字コードがよくわからなかったときの文字コード。省略されたらutf8。 1686 # たぶんこの指定が生きることはないと思いますが……。 1687 charset: jis 1688 1689 # NumericReply の名前を解決して表示する(ちゃんとした dump では無くなります) 1690 resolve-numeric: 1 1691 1692 # ログを取るコマンドを表すマスク。省略されたら記録出来るだけのコマンドを記録する。 1693 command: *,-ping,-pong 1694 1695 # 各ログファイルを開きっぱなしにするかどうか。 1696 # このオプションは多くの場合、ディスクアクセスを抑えて効率良くログを保存しますが 1697 # ログを記録すべき全てのファイルを開いたままにするので、50や100のチャンネルを 1698 # 別々のファイルにログを取るような場合には使うべきではありません。 1699 # 万一 fd があふれた場合、クライアントから(またはサーバへ)接続できない・ 1700 # 新たなモジュールをロードできない・ログが全然できないなどの症状が起こる可能性が 1701 # あります。limit の詳細については OS 等のドキュメントを参照してください。 1702 #keep-file-open: 1 1703 1704 # keep-file-open 時に各行ごとに flush するかどうか。 1705 # open/close の負荷は気になるが、ログは失いたくない人向け。 1706 # keep-file-open が有効でないなら無視され(1になり)ます。 1707 #always-flush: 0 1708 1709 # keep-file-openを有効にした場合、発言の度にログファイルに追記するのではなく 1710 # 一定の分量が溜まってから書き込まれる。そのため、ファイルを開いても 1711 # 最近の発言はまだ書き込まれていない可能性がある。 1712 # syncを設定すると、即座にログをディスクに書き込むためのコマンドが追加される。 1713 # 省略された場合はコマンドを追加しない。 1714 sync: sync 1715 1716 # 各サーバの設定。サーバ名の部分はマスクである。 1717 # 記述された順序で検索されるので、全てのサーバにマッチする"*"などは最後に書かなければならない。 1718 # 指定されたディレクトリが存在しなかったら、勝手に作られる。 1719 # フォーマットは次の通り。 1720 # channel: <ディレクトリ名> <サーバ名マスク> 1721 # 例: 1722 # filename: %Y-%m-%d.txt 1723 # server: ircnet ircnet 1724 # server: others * 1725 # この例では、ircnetのログはircnet/%Y.%m.%d.txtに、 1726 # それ以外のログはothers/%Y.%m.%d.txtに保存される。 1727 server: ircnet ircnet 1728 server: others * 1729} 1730 1731- Log::Recent { 1732 # クライアントを接続した時に、保存しておいた最近のメッセージを送る。 1733 1734 # クライアントオプションの no-recent-logs が指定されていれば送信しません。 1735 1736 # 各行のヘッダのフォーマット。省略されたら'%H:%M'。 1737 header: %H:%M:%S 1738 1739 # ログをチャンネル毎に何行まで保存するか。省略されたら10。 1740 line: 15 1741 1742 # PRIVMSGとNOTICEを記録する際に、自分の発言と他人の発言でフォーマットを変えるかどうか。1/0。デフォルトで1。 1743 distinguish-myself: 1 1744 1745 # どのメッセージを保存するか。省略されたら保存可能な全てのメッセージを保存する。 1746 command: privmsg,notice,topic,join,part,quit,kill 1747} 1748 1749+ Network::Freenode { 1750 # Freenode サポート 1751 1752 # 現状では ChanServ の検出以外の機能はありません。 1753 # drop による状況の変化についてもサポートしていません。 1754 1755 # Channel::Rejoin では、このモジュールによってチャンネルが 1756 # ChanServ の管理下にあると検出した時には Rejoin 動作を 1757 # 行わなくなります。 1758 1759 # 設定はありません。 1760 # また、 freenode 以外のネットワークでこのモジュールが 1761 # 有効になっていても不都合はないはずです。 1762} 1763 1764- Skeleton { 1765 # Skeleton for tiarra-module. 1766 1767 # モジュールの説明をこのあたりに書く. 1768 # 詳細はこのソースみれば分かると思われ. 1769 # 書式は tiarra.conf にそのままコピーできる形式. 1770 1771 # もにゅもにゅ 1772 mask: *!*@* 1773 mask: ... 1774} 1775 1776+ System::Error { 1777 # サーバーからのERRORメッセージをNOTICEに埋め込む 1778 1779 # これをoffにするとクライアントにERRORメッセージがそのまま送られます。 1780 # クライアントとの間ではERRORメッセージは主に切断警告に使われており、 1781 # そのまま流してしまうとクライアントが混乱する可能性があります。 1782 # 設定項目はありません。 1783 1784 # このモジュールを回避してERRORメッセージをクライアントに送りたい場合は、 1785 # remarkのsend-error-as-is-to-clientを指定してください。 1786} 1787 1788- System::LivePatch { 1789 # Live Patch. 1790 1791 # main/* に対する実行時パッチ 1792 # 起動/ロード時に確認は行われるが, 実際の適用は指示があるまで行われない. 1793 1794 # 対応している箇所. 1795 # ModuleManager / reload_modules_if_modified / r3004 => r8809 1796 # LinedINETSocket / connect / r3004 => r8930 1797 # Configuration::Block / equals / r3004 => r11868 1798 1799 # /livepatch check で確認. 1800 # /livepatch apply で適用. 1801 command: livepatch 1802} 1803 1804- System::Macro { 1805 # 新規にコマンドを追加し、そのコマンドが使われた時に特定の動作をまとめて実行します。 1806 1807 # 書式: <コマンド> <動作> 1808 # コマンド"switch"を追加して、それが使われると 1809 # #a@ircnet,#b@ircnet,#c@ircnetにjoinして、 1810 # #d@ircnet,#e@ircnet,#f@ircnetからpartする例。 1811 #macro: switch join #a@ircnet,#b@ircnet,#c@ircnet 1812 #macro: switch part #d@ircnet,#e@ircnet,#f@ircnet 1813} 1814 1815- System::NotifyIcon::Win32 { 1816 # タスクトレイにアイコンを表示する。 1817 1818 # タスクトレイにアイコンを表示します。 1819 # クリックすると表示非表示を切り替えることができ、右クリックすると 1820 # Reload と Exit ができるコンテキストメニューを表示します。 1821 # 多少反応が鈍いかもしれませんがちょっと待てば出てくると思います。 1822 1823 # Win32::GUI を必要とします。 1824 # コンテキストメニューは表示している間処理をブロックしています。 1825 1826 # Win32 イベントループを処理する最大間隔を指定します。 1827 #interval: 2 1828 1829 # 通知領域に表示するアイコンを指定します。 1830 # Win32::GUI の制限でちゃんとしたアイコンファイルしか指定できません。 1831 iconfile: guiperl.ico 1832 1833 # モジュールが読み込まれたときにコンソールウィンドウを隠すかどうかを 1834 # 指定します。 1835 hide-console-on-load: 1 1836} 1837 1838+ System::Pong { 1839 # サーバーからのPINGメッセージに対し、自動的にPONGを返す。 1840 1841 # これをoffにするとクライアントが自らPINGに応答せざるを得なくなりますが、 1842 # クライアントからのPONGメッセージはデフォルトのサーバーへ送られるので 1843 # デフォルト以外のサーバーからはPing Timeoutで落とされるなど 1844 # 全く良い事がありません。 1845 # 設定項目はありません。 1846} 1847 1848+ System::PrivTranslator { 1849 # クライアントからの個人的なprivが相手に届かなくなる現象を回避する。 1850 1851 # このモジュールは個人宛てのprivmsgの送信者のnickにネットワーク名を付加します。 1852 # また、最後に声をかけられてから5分以内の nick 変更をクライアントに伝えます。 1853 # 設定項目はありませんが、 networks/channel-network-separator を ! や @ 以外に 1854 # 変更することをおすすめします。 1855} 1856 1857- System::Raw { 1858 # マスクで指定したサーバーにIRCメッセージを加工せずに直接送る。 1859 1860 # 例えばQUITを送る事で一時的な切断が可能。 1861 1862 # この機能を利用するためのコマンド名。デフォルトは「raw」。 1863 # 「/raw ircnet quit」のようにして使う。 1864 # 一つ目のパラメータは送り先のネットワーク名。ワイルドカード使用可能。 1865 # CHOCOA の場合、 raw がクライアントで使われてしまうので、 1866 # コマンド名を変えるか、 /raw raw ircnet quit のようにする必要がある。 1867 command: raw 1868} 1869 1870+ System::Reload { 1871 # confファイルやモジュールの更新をリロードするコマンドを追加する。 1872 1873 # リロードを実行するコマンド名。省略されるとコマンドを追加しません。 1874 # 例えば"load"を設定すると、"/load"と発言しようとした時にリロードを実行します。 1875 # この時コマンドはTiarraが握り潰すので、IRCプロトコル上で定義された 1876 # コマンド名を設定すべきではありません。 1877 command: load 1878 1879 # command と同じですが、サーバにもブロードキャストします。 1880 #broadcast-command: load-all 1881 1882 # confファイルをリロードしたときに通知します。 1883 # モジュールの設定が変更されていた場合は、ここでの設定にかかわらず、 1884 # モジュールごとに表示されます。1または省略された場合は通知します。 1885 conf-reloaded-notify: 1 1886} 1887 1888- System::RemoteControl { 1889 # 特定の発言が送られてきたとき、それに反応してIRCコマンドを実行します。 1890 1891 # 実行を許可する人間を表すマスク。 1892 #mask: *!*example@example.net 1893 1894 # 構文: + <nick> <IRC Message> 1895 # <nick>は反応するbotのnickを表すマスク。 1896 # <Tiarra::IRC::Message>はサーバーに向けて発行するIRCメッセージ。 1897 # 1898 # 例: 1899 # + hoge NICK [hoge] 1900 # hogeというBOTが[hoge]にnickを変更する。 1901} 1902 1903- System::Shutdown { 1904 # Tiarraを終了させる。 1905 1906 # クライアントから特定のコマンドが実行された時や、 1907 # 誰かから個人的に(privで)特定の発言が送られた時に 1908 # Tiarra を終了させます。 1909 1910 # 追加するコマンド。省略された場合はコマンドでのシャットダウンは無効になります。 1911 #command: shutdown 1912 1913 # Tiarraをシャットダウンさせるprivの発言。 1914 # 省略された場合はprivでのシャットダウンは無効になります。 1915 # パラメータとして shutdown メッセージを指定できます。 1916 #message: shutdown 1917 1918 # privでのシャットダウンを許可する人。 1919 # 省略された場合はprivでのシャットダウンは無効になります。 1920 # 複数のマスクを指定した場合は、一つでもマッチするものがあればシャットダウンします。 1921 #mask: example!example@*.example.jp 1922} 1923 1924- System::WebClient { 1925 # ブラウザ上でログを見たり発言したりできます. 1926 1927 # WebClient を起動させる場所の指定. 1928 bind-addr: 127.0.0.1 1929 bind-port: 8667 1930 path: /irc 1931 css: /irc/style/style.css 1932 # 上の設定をapacheでReverseProxyさせる場合, httpd.conf には次のように設定. 1933 # ProxyPass /irc/ http://localhost:8667/irc/ 1934 # ProxyPassReverse /irc/ http://localhost:8667/irc/ 1935 # <Location /irc/> 1936 # ... 1937 # </Location> 1938 1939 # ReverseProxy 利用時の追加設定. 1940 # 接続元が全部プロキシサーバになっちゃうのでその対応. 1941 # ReverseProxy 使わず直接公開の場合は不要. 1942 #extract-forwarded-for: 127.0.0.1 1943 1944 # 利用する接続設定の一覧. 1945 # 1946 # 空白区切りで評価する順に記述. 1947 # 使われる設定は, 1948 # - 接続元 IP が一致する物. 1949 # - user/passが送られてきていない(認証前/anonymous): 1950 # - 認証不要の設定があればその設定を利用. 1951 # - 認証不要の設定がなければ 401 Unauthorized. 1952 # - user/passが送られてきている. 1953 # - 一致する設定を利用. 1954 # - 一致する設定がなければ 401 Unauthorized. 1955 allow: private public 1956 1957 # 許可する接続の設定. 1958 allow-private { 1959 # 接続元IPアドレスの制限. 1960 host: 127.0.0.1 1961 # 認証設定. 1962 # auth: <user> <pass> 1963 # auth: :basic <user> <pass> 1964 # auth: :softbank <端末ID> 1965 # auth: :softbank <UID> 1966 # auth: :au <SUBNO> 1967 # 各値(<pass>等)には {MD5}xxxx や {B}xxx や {CRYPT}xxx を利用可能. 1968 # そのままべた書きも出来るけれど. 1969 auth: :basic user pass 1970 # 公開するチャンネルの指定. 1971 mask: #*@* 1972 mask: *@* 1973 } 1974 allow-public { 1975 host: * 1976 auth: :basic user2 pass2 1977 mask: #公開チャンネル@ircnet 1978 } 1979 1980 # デバッグフラグ. 1981 #debug: 0 1982 1983 # 保存する最大行数. 1984 #max-lines: 100 1985 1986 # クライアントモード. 1987 # owner か shared. 1988 # mode: owner 1989 1990 # ログの方向. 1991 # asc (旧->新) か desc (新->旧). 1992 # sort-order: asc 1993 1994 # name-default 設定は VERSION 0.05 で廃止されました. 1995 # # 発言BOXで名前指定しなかったときのデフォルトの名前. 1996 # # mode: shared の時に使われる. 1997 # -name-default: (noname) 1998 1999 # 外部にTiarraさんを使っているときに, そこのネットワークを切り出して表示する. 2000 # exteact-network: <netname> <remote-sep> 2001 # <netname> ::= このTiarraさんから見たときの外部Tiarraさんのネットワーク名. 2002 # (このtiarra.confで指定しているネットワーク名) 2003 # <remote-sep> ::= 外部Tiarraさんで使っているセパレータ. 2004 # (こっちはこのtiarra.confのではないです) 2005 # 省略すると @ と仮定. 2006 #exteact-network: tiarra 2007 #exteact-network: tiarra @ 2008} 2009 2010- User::Away::Client { 2011 # クライアントが一つも接続されていない時にAWAYを設定します。 2012 2013 # どのようなAWAYメッセージを設定するか。省略された場合はAWAYを設定しません。 2014 #away: 居ない。 2015} 2016 2017- User::Away::Nick { 2018 # ニックネーム変更に応じて AWAY を設定します。 2019 2020 # ニックネームを変更したときに、そのニックネームに対応するAWAYが 2021 # 設定されていれば、そのAWAYを設定します。そうでなければAWAYを取り消します。 2022 2023 # 書式: <nickのマスク> <設定するAWAYメッセージ> 2024 # 2025 # nickをhoge_zzzに変更すると、「寝ている」というAWAYを設定する。 2026 # hoge_workまたはhoge_zzzに変更した場合は、「仕事中」というAWAYを設定する。 2027 # それ以外のnickに変更した場合はAWAYを取り消す。 2028 # 後者は正規表現を利用して「away: re:hoge_(work|zzz) 仕事中」としても良い。 2029 #away: hoge_zzz 寝ている 2030 #away: hoge_work,hoge_zzz 仕事中 2031} 2032 2033- User::Filter { 2034 # 指定された人物からのPRIVMSGやNOTICEを書き換える。 2035 2036 # 人物のマスクと、置換パターンを定義。 2037 # 置換パターン中の#(message)は、発言内容に置換されます。 2038 # 人物が複数のマスクに一致する場合は、最初に一致したものが使われます。 2039 pattern: *!*@* #(message) 2040} 2041 2042- User::Ignore { 2043 # 指定された人間からのPRIVMSGやNOTICEを破棄してクライアントへ送らないようにするモジュール。 2044 2045 # 対象となるコマンドのマスク。省略時には"privmsg,notice"が設定されている。 2046 # ただしprivmsgとnotice以外を破棄してしまうと、(Tiarraは平気でも)クライアントが混乱する。 2047 command: privmsg,notice 2048 2049 # maskは複数定義可能。定義された順番でマッチングが行なわれます。 2050 mask: example!*@*.example.net 2051} 2052 2053- User::Nick::Detached { 2054 # クライアントが接続されていない時に、特定のnickに変更します。 2055 2056 # クライアントが接続されていない時のnick。 2057 # このnickが既に使われていたら、適当に変更が加えられて使用されます。 2058 # クライアントが再び接続されると、切断前のローカルnickに戻ります。 2059 detached: PHO_d 2060} 2061 2062- User::ServerOper { 2063 # 特定のネットワークに接続した時、OPERコマンドを発行します。 2064 2065 # 書式: <ネットワーク名> <オペレータ名> <オペレータパスワード> 2066 # 2067 # ネットワーク"local"に接続した時、オペレータ名oper、 2068 # オペレータパスワードoper-passでOPERコマンドを発行する例。 2069 #oper: local oper oper-pass 2070} 2071 2072- User::Vanish { 2073 # 指定された人物の存在を、様々なメッセージから消去する。 2074 2075 # 対象となった人物の発行したJOIN、PART、INVITE、QUIT、NICKは消去され、NAMESの返すネームリストからも消える。 2076 # また、対象となった人物のNJOINも消去される。 2077 2078 # Vanish対象が発行したMODEを消去するかどうか。デフォルトで0。 2079 # 消去するとは云え、本当にMODEそのものを消してしまうのではなく、 2080 # そのユーザーの代わりに"HIDDEN!HIDDEN@HIDDEN.BY.USER.VANISH"がMODEを実行した事にする。 2081 drop-mode-by-target: 1 2082 2083 # Vanish対象を対象とするMODE +o/-o/+v/-vを消去するかどうか。デフォルトで1。 2084 drop-mode-switch-for-target: 1 2085 2086 # Vanish対象が発行したKICKを消去するかどうか。デフォルトで0。 2087 # 本当に消すのではなく、"HIDDEN!HIDDEN@HIDDEN.BY.USER.VANISH"がKICKを実行した事にする。 2088 drop-kick-by-target: 1 2089 2090 # Vanish対象を対象とするKICKを消去するかどうか。デフォルトで0。 2091 drop-kick-for-target: 0 2092 2093 # Vanish対象が発行したTOPICを消去するかどうか。デフォルトで0。 2094 # 本当に消すのでは無いが、他の設定と同じ。 2095 drop-topic-by-target: 1 2096 2097 # チャンネルとVanish対象の定義。 2098 # 特定のチャンネルでのみ対象とする、といった事が可能。 2099 # また、privの場合は「#___priv___@ネットワーク名」という文字列をチャンネル名の代わりとしてマッチングを行なう。 2100 # 書式: mask: <チャンネルのマスク> <ユーザーのマスク> 2101 mask: #example@example example!exapmle@example.com 2102} 2103 2104