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

# Auto 関係のモジュール

## Auto::Alias

ユーザエイリアス情報の管理を行ないます。

エイリアスは基本的にname,userの二つのフィールドから成っており、
それぞれユーザー名、ユーザーマスクを表します。

エイリアス定義ファイルのパスと、そのエンコーディング。
このファイルは次のようなフォーマットである。
1. それぞれの行は「<キー>: <値>」の形式である。
2. 空の行で、各ユーザーを区切る。
3. <値>はカンマで区切られて複数の値とされる。
エイリアス定義ファイルの例:
name: sample
user: *!*sample@*.sample.net
name: sample2,[sample2]
user: *!sample2@*.sample.net,*!sample2@*.sample2.net

alias:alias.txt
alias-encoding:euc

この発言をした人のエイリアスが登録されていれば、それをprivで送る。

confirm:エイリアス確認

「<addで指定したキーワード> user *!*user@*.user.net」のようにして情報を追加。
発言をした人のエイリアスが未登録だった場合は、userのみ受け付けて新規追加とする。

add:エイリアス追加

「<removeで指定したキーワード> name ユーザー」のようにして情報を削除。
userを全て削除されたエイリアスは他の情報(name等)も含めて消滅する。

remove:エイリアス削除

メッセージが追加されたときの反応を指定します。
ランダムなメッセージを発言する際のフォーマットを指定します。
エイリアス置換が有効です。#(nick.now)、#(channel)は
それぞれ相手のnick、チャンネル名に置換されます。
#(key)、#(value)は、追加されたキーと値に置換されます。

added-format:#(name|nick.now): エイリアス #(key) に #(value) を追加しました。
add-failed-format:#(name|nick.now): エイリアス #(key) の追加に失敗しました。

メッセージが削除されたときの反応を指定します。
added-formatで指定できるものと同じです。

removed-format:#(name|nick.now): エイリアス #(key) から #(value) を削除しました。
remove-failed-format:#(name|nick.now): エイリアス #(key) からの削除に失敗しました。

エイリアスの追加や削除が許されている人。省略された場合は「*!*@*」と見做される。

modifier:*!*@*

## Auto::Answer

特定の発言に反応して対応する発言をする。

Auto::Aliasを有効にしていれば、エイリアス置換を行ないます。

反応する発言と、それに対する返事を定義します。
エイリアス置換が有効です。#(nick.now)と$(channel)はそれぞれ
相手の現在のnickとチャンネル名に置換されます。
コマンド: reply
書式: <反応する発言のマスク> <それに対する返事>
例:

reply:こんにちは* こんにちは、#(name|nick.now)さん。

この例では誰かが「こんにちは」で始まる発言をすると、
発言した人のエイリアスを参照して「こんにちは、○○さん。」のように発言します。
コマンド: channel-reply
書式: <反応するチャンネルのマスク> <反応する発言のマスク> <それに対する返事>
例:

channel-reply:#あいさつ@ircnet こんにちは* こんにちは、#(name|nick.now)さん。

この例では#あいさつ@ircnetで誰かが「こんにちは」で始まる発言をすると、
発言した人のエイリアスを参照して「こんにちは、○○さん。」のように発言します。
コマンド: answer-to-myself
書式: <真偽値>
例:

answer-to-myself:on

自分の発言にも反応するようになります。
デフォルトは off です。

## Auto::Calc

Perlの式を計算させるモジュール。

反応する発言を指定します。

request:計算

使用を許可する人&チャンネルのマスク。
例はTiarraモード時。 [default: なし]

mask:* +*!*@*

[plum-mode] mask: +*!*@*

結果が未定義だったときに置き換えられる文字列。省略されると undef 。

undef:(未定義)

正常に計算できたときのフォーマット
method: 計算式, result: 結果, error: エラー, signal: シグナル

reply-format:#(method): #(result)

エラーが起きたときのフォーマット
method: 計算式, result: 結果, error: エラー, signal: シグナル

error-format:#(method): エラーです。(#(error))

シグナルが発生したときのフォーマット

signal-format:#(method): シグナルです。(#(signal))

signal-$SIGNALNAME-format 形式。
$SIGNALNAME には現状 alarm/sigfpe があります。
該当がなければ signal-format にフォールバックします。

いくつかの例を挙げます。

signal-alarm-format:#(method): 時間切れです。
signal-sigfpe-format:#(method): 浮動小数点計算例外です。

タイムアウトする秒数を指定します。 alarm に渡されます。
再帰を止めるのに使えますが、どうもメモリリークしていそうな雰囲気です。

timeout:1

サブルーチン定義を許可するかどうかを指定する。
再帰定義が可能なので、許可する場合はこのモジュール専用の
Tiarra を動かすことをお勧めします。

permit-sub:0

初期化する発言を指定します。
このモジュールでは現状変数や関数定義などを行えます。
このコマンドが発行されるとそれらをクリアします。

init:計算初期化

初期化を許可する人&チャンネルのマスク。
例はTiarraモード時。 [default: なし]

init-mask:* +*!*@*

[plum-mode] mask: +*!*@*

再初期化したときの発言を指定します。

init-format:初期化しました。

別の shared-mode な System::WebClient からの発言に対応(yes/no).
自分自身の発言は未対応.
[default: no]

support-shared-webclient:no

## Auto::ChannelWithoutOper

チャンネルオペレータ権限がなくなってしまったときに発言する。

+で始まらない特定のチャンネルで、+aモードでも+rモードでもないのに
誰もチャンネルオペレータ権限を持っていない状態になっている時、
そこに誰かがJOINする度に特定のメッセージを発言するモジュールです。

書式: <チャンネル名> <メッセージ>

channel:#IRC談話室@ircnet なると消失しました。

## Auto::FetchTitle

発言に含まれるURLからタイトルを取得.

リクエストタイムアウトまでの時間(秒).

timeout:3

有効にするチャンネルとオプションとURLの設定.
書式: mask: <channel> [<&conf>...] <url>
mask: #test@ircnet &test http://*
mask: * http://*

mask:* http://*

&test と設定すると conf-test ブロックの中身が使われる.
conf-test {
auth-test1 {
url: http://example.com/*
url: http://example.org/*
user: test
#pass: test
pass: {BASE64}dGVzdAo=
}
filter-xx {
url: http://example.com/*/xx/*
type: xx
}
}

お返事の前や後ろにつける字句.

reply-prefix:"(FetchTitle) "
reply-suffix:" [AR]"

デバッグフラグ.
debug: 0
debug-mask: #debug-chan your_nick!~you@example.com
debug-dumpfile: fetchtitle.log

NOTE:
利用するにはCodeReposから
module/Tools/HTTPClient.pm rev.8220
main/Tiarra/Socket/Buffered.pm rev.8219
以降が必要です.

## Auto::FetchTitle::Plugin::ExtractHeading

本文から見出しを抽出するFetchTitleプラグイン.

Auto::FetchTitle { ... } での設定.
+ Auto::FetchTitle {
plugins {
ExtractHeading {
extra: name1 name2 ...
extra-name1 {
url: http://www.example.com/*
recv_limit: 10*1024
extract: re:<div id="title">(.*?)</div>
}
}
}
}

## Auto::FetchTitle::Plugin::Mixi

Mixiにログインして見出し抽出出来るようにするFetchTitleプラグイン.

Auto::FetchTitle { ... } での設定.
+ Auto::FetchTitle {
mask: #* &mixi http://*
plugins {
Mixi {
mixi-user: xxx
mixi-pass: yyy
}
}
conf-mixi {
filter-mixi {
url: http://mixi.jp/*
url: http://news.mixi.jp/*
type: mixi
timeout: 10
#閲覧可能なコミュニティの指定.
#mixi-community: 0
#閲覧可能なユーザの指定.
#指定したユーザには足跡踏んで見に行きます.
#mixi-friend: 0
#閲覧可能にしていないページを表示したときのメッセージ.
#要求されたページを #(url) で展開できます.
#mixi-noperm-msg: not permitted #(url).
}
}
}
アカウント情報は plugins Mixi に記述.
mixi-pass には {B}bbbb でBASE64エンコード値も可能.
newsだけしか使わない場合でも, ログイン処理が必要なので
mixi.jp 内のいくつかのURLはこのプラグインで処理する必要があります.
url: http://news.mixi.jp/*
url: http://mixi.jp/issue_ticket.pl?*
url: http://mixi.jp/login.pl
url: http://mixi.jp/check.pl?*
(それぞれ, ニュースページ, ログイン処理, エラー検出, 途中経路になります.)

## Auto::Im

名前が呼ばれると、その発言をim.kayac.comに送信する

反応する人のマスクを指定します。
省略すると全員に反応します。

mask:* *!*@*

反応するキーワードを正規表現で指定します。
複数指定したい時は複数行指定してください。

regex-keyword:(?i:fugahoge)

反応するキーワードを指定します。
複数指定したい時は,(コンマ)で区切るか、複数行指定してください。

keyword:hoge

im.kayac.com に送るメッセージのフォーマットを指定します。
デフォルト値: [tiarra][#(channel):#(nick.now)] #(text)
#(channel) のかわりに #(raw_channel) を利用するとネットワーク名がつきません。

format:[tiarra][#(channel):#(nick.now)] #(text)

im.kayac.comで登録したユーザ名を入力します。
im.kayac.comについては http://im.kayac.com/#docs を参考にしてください。

user:username

im.kayac.comで秘密鍵認証を選択した場合は設定してください。
省略すると認証なしになります。

secret:some secret

im.kayac.comでパスワード認証を選択した場合は設定してください。
省略すると認証なしになります。
secret と両方指定した場合は secret が優先されています。

password:some password

## Auto::Joined

特定のチャンネルに誰かがJOINする度に特定のメッセージを発言する。

Auto::Aliasを有効にしていれば、エイリアス置換を行ないます。

発言を行なうチャンネルと、その内容を定義します。
#(nick.now)と$(channel)は、それぞれ相手の現在のnickとチャンネル名に置換されます。
書式: <チャンネル名> <発言内容>

channel:#チャンネル@ircnet 「#ちゃんねる」に移転しました。

## Auto::MesMail

伝言をメールとして送信する。

メールアドレスはエイリアスの mail を参照します。

Fromアドレス。[default: OSのユーザ名]

from:example1@example.jp

送信用のキーワード [default: mesmail_send]

send:速達伝言

使用を許可する人&チャンネルのマスク。
例はTiarraモード時。 [default: なし]

mask:* +*!*@*

[plum-mode] mask: +*!*@*

maskで拒否されたときのメッセージ [default: なし]

deny:伝言したくない。

一度に送れる宛先の量 [default: 無制限]

max-send-address:5

宛先を探すエイリアスエントリ [default: なし]

alias-key:name
alias-key:nick

宛先の人を判別出来なかったときのメッセージ [default: なし]

unknown:#(who)さんと言うのは誰ですか?

メールの日付形式

date:%H:%M:%S

エイリアスは見付かったけれどメールアドレスが登録されていなかったときのメッセージ。 [default: なし]

none-address:#(who)さんはアドレスを登録していません。

SMTPのホスト [default: localhost]

smtphost:localhost

SMTPのポート [default: smtp(25)]

smtpport:25

SMTPで自ホストのFQDN [default: localhost]

smtpfqdn:localhost

SMTPのユーザ。指定されれば SMTP Auth を行う [default: なし]

smtpuser:example1

SMTPのパスワード [default: 空パスワード('')]

smtppass:test-password

送信するメールの既定件名(エイリアス使用不可) [default: Message from IRC]

subject:Message from IRC

送信するメールの本文 [default: #(date) << #(from.name|from.nick|from.nick.now) >> #(message)]

format:#(date)に#(from.name|from.nick|from.nick.now)さんから#(message)という伝言です。

送信したときのメッセージ。 [default: なし]

accept:#(who)さんに#(message)と伝言しておきました。

---- POP before SMTP の指定 ----
POP before SMTPを使う。 [default: no]

use-pop3:yes

POP before SMTPのタイムアウト時間(分)。分からない場合は指定しなくて良い。 [default: 0]

pop3-expire:4

POPのホスト。 [default: localhost]

pop3host:localhost

POPのポート。 [default: pop(110)]

pop3port:110

POPのユーザ [default: OSのユーザ名]

pop3user:example1

POPのパスワード [default: 空パスワード('')]

pop3pass:test-password

---- エラーメッセージの設定 ----

一般エラー。
error-[state] と言う形式で詳細エラーメッセージを指定できる。
[state]は、
* mailfrom(メールの送信者を指定しようとしてエラー)
* rcptto(メールの送信先を指定しようとしてエラー)
* norcptto(メールの送信先が全部無くなった)
* data(メールの中身を送信しようとしてエラー)
* finish(メールの中身を送信したらエラー)
がある。特に欲しくなければerror-[state]は指定しなくても構わない。
メッセージを出したくないなら中身の無いエントリを指定すれば良い。
error-[state]が指定されてない場合は代わりに error を使う。 [default: 未定義]

error-rcptto:
error-norcptto:#(who)さんには送れませんでした。送信できるメールアドレスがありません。
error-data:メールが送信できません。DATAコマンドに失敗しました。#(line;サーバ応答:%s|;)
error:メール送信エラーです。#(line;サーバ応答:%s|;)#(state; on %s|;)

致命的なエラー。メールに個別なエラーではないので送信者(のprefix)毎に1メッセージ送られる。
fatalerror-[state]
[state]:
* first(接続エラー)
* helo(SMTPセッションを開始出来ない)
がある。特に欲しくなければfatalerror-[state]は指定しなくても構わない。
メッセージを出したくないなら中身の無いエントリを指定すれば良い。
fatalerror-[state]が指定されてない場合は代わりに fatalerror を使う。 [default: 未定義]

fatalerror-first:SMTPサーバに接続できません。
fatalerror:SMTPセッションで致命的なエラーがありました。#(line; サーバ応答:%s|;)#(state; on %s|;)

## Auto::Notify

名前が呼ばれると、その発言をim.kayac.comに送信する

反応する人のマスクを指定します。
省略すると全員に反応します。

mask:* *!*@*

反応するキーワードを正規表現で指定します。
複数指定したい時は複数行指定してください。

regex-keyword:(?i:fugahoge)

反応するキーワードを指定します。
複数指定したい時は,(コンマ)で区切るか、複数行指定してください。

keyword:hoge

メッセージのフォーマットを指定します。
デフォルト値: [tiarra][#(channel):#(nick.now)] #(text)
#(channel) のかわりに #(raw_channel) を利用するとネットワーク名がつきません。

format:[tiarra][#(channel):#(nick.now)] #(text)

使用するブロックを指定します

blocks:im prowl
im

通知先のタイプを指定します。

type:im_kayac

im.kayac.comで登録したユーザ名を入力します。
im.kayac.comについては http://im.kayac.com/#docs を参考にしてください。

user:username

im.kayac.comで秘密鍵認証を選択した場合は設定してください。
省略すると認証なしになります。

secret:some secret

im.kayac.comでパスワード認証を選択した場合は設定してください。
省略すると認証なしになります。
secret と両方指定した場合は secret が優先されています。

password:some password
prowl

通知先のタイプを指定します。

type:prowl

通知先ごとにフォーマットを指定できます。
この例では先頭に時刻を追加しています。

format:#(date:%H:%M:%S) [#(channel):#(nick.now)] #(text)

Prowl で表示された apikey を入力します。
Prowl については http://prowl.weks.net/ を参考にしてください。

apikey:XXXXXX

http://forums.cocoaforge.com/viewtopic.php?f=45&t=20339

priority:0
application:tiarra
event:keyword

## Auto::Oper

特定の文字列を発言した人を+oする。

Auto::Aliasを有効にしていれば、エイリアス置換を行ないます。

+oを要求する文字列(マスク)を指定します。

request:なると寄越せ

チャンネルオペレータ権限を要求した人と要求されたチャンネルが
ここで指定したマスクに一致しなかった場合は
denyで指定した文字列を発言し、+oをやめます。
省略された場合は誰にも+oしません。
書式は「チャンネル 発言者」です。
マッチングのアルゴリズムは次の通りです。
1. チャンネル名にマッチするmask定義を全て集める
2. 集まった定義の発言者マスクを、定義された順にカンマで結合する
3. そのようにして生成されたマスクで発言者のマッチングを行ない、結果を+o可能性とする。
例1:
mask: *@2ch* *!*@*
mask: #*@ircnet* *!*@*.hoge.jp
この例ではネットワーク 2ch の全てのチャンネルで誰にでも +o し、
ネットワーク ircnet の # で始まる全てのチャンネルでホスト名 *.hoge.jp の人に+oします。
#*@ircnetだと「#hoge@ircnet:*.jp」などにマッチしなくなります。
例2:
mask: #hoge@ircnet -*!*@*,+*!*@*.hoge.jp
mask: * +*!*@*
基本的に全てのチャンネルで誰にでも +o するが、例外的に#hoge@ircnetでは
ホスト名 *.hoge.jp の人にしか +o しない。
この順序を上下逆にすると、全てのチャンネルで全ての人を +o する事になります。
何故なら最初の* +*!*@*が全ての人にマッチするからです。

mask:* *!*@*

+oを要求した人を実際に+oする時、ここで指定した発言をしてから+oします。
#(name|nick)のようなエイリアス置換を行います。
エイリアス以外でも、#(nick.now)を相手のnickに、#(channel)を
そのチャンネル名にそれぞれ置換します。

message:了解

+oを要求されたが+oすべき相手ではなかった場合の発言。
省略されたら何も喋りません。

deny:断わる

+oを要求されたが相手は既にチャンネルオペレータ権限を持っていた場合の発言。
省略されたらdenyに設定されたものを使います。

oper:既に@を持っている

+oを要求されたが自分はチャンネルオペレータ権限を持っていなかった場合の発言。
省略されたらdenyに設定されたものを使います。

not-oper:@が無い

チャンネルに対してでなく自分に対して+oの要求を行なった場合の発言。
省略されたらdenyに設定されたものを使います。

private:チャンネルで要求せよ

チャンネルの外から+oを要求された場合の発言。+nチャンネルでは起こりません。
省略されたらdenyに設定されたものを使います。

out:チャンネルに入っていない

## Auto::Outputz

チャンネルの発言文字数を outputz に送信する

復活の呪文。

key:some secret

送信対象にするコマンドの設定。
省略された場合は PRIVMSG 。
パラメータ1が送信先、パラメータ2が本文でなければ動作しないので、
動作するコマンドは PRIVMSG/NOTICE/TOPIC/PART 程度。

command:PRIVMSG

各チャンネルのURIの設定。
記述された順序で検索されるので、全てのチャンネルにマッチする"*"などは最後に書かなければならない。
フォーマットは次の通り。
channel: <URI> (<チャンネル名> / 'priv')@<ネットワーク名>
#(channel) はチャンネル名に、 #(channel_short) はネットワークなしの
チャンネル名に、 #(network) はネットワーク名にそれぞれ置き換えられる。
また、危険な文字は自動的にエスケープされる。

channel:http://#(network).irc.example.com/#(channel_short) *

## Auto::Random

特定の発言に反応してランダムな発言をします。

Auto::Aliasを有効にしていれば、エイリアス置換を行ないます。

使用するブロックの定義。

blocks:wimikuji
wimikuji

ランダムに発言するメッセージの書かれたファイルと、その文字コードを指定します。
ファイルの中では一行に一つのメッセージを書いて下さい。

file:random.txt
file-encoding:euc

反応する発言を表すマスクを指定します。

request:ゐみくじ

メッセージの登録数を返答するキーワードを指定します。

count-query:ゐみくじ登録数

メッセージの登録数を返答するときの反応を指定します。
formatで指定できるものと同じです。#(count)は登録数になります。

count-format:ゐみくじは#(count)件登録されています。

ランダムなメッセージを発言する際のフォーマットを指定します。
エイリアス置換が有効です。#(message)、#(nick.now)、#(channel)は
それぞれメッセージ内容、相手のnick、チャンネル名に置換されます。
何も登録されていないときのために、#(message|;無登録)のように指定すると良いでしょう。

format:#(name|nick.now)の運命は#(message)

反応する人のマスク。

mask:* *!*@*

plum: mask: *!*@*

メッセージが追加されたときの反応を指定します。
formatで指定できるものと同じです。#(message)は追加されたメッセージになります。

added-format:#(name|nick.now): ゐみくじ #(message) を追加しました。

メッセージが削除されたときの反応を指定します。
formatで指定できるものと同じです。#(message)は削除されたメッセージになります。

removed-format:#(name|nick.now): ゐみくじ #(message) を削除しました。

発言に反応する確率を指定します。百分率です。省略された場合は100と見做されます。

rate:100

メッセージを追加するキーワードを指定します。
ここで指定したキーワードを発言すると、新しいメッセージを追加します。
実際の追加方法は「<addで指定したキーワード> <追加するメッセージ>」です。

add:ゐみくじ追加

メッセージを削除するキーワードを指定します。
実際の削除方法は「<removeで指定したキーワード> <削除するキーワード>」です。

remove:ゐみくじ削除

addとremoveを許可する人。省略された場合は誰も変更できません。

modifier:* *!*@*

plum: modifier: *!*@*

## Auto::Reply

特定の発言に反応して発言をします。

Auto::Aliasを有効にしていれば、エイリアス置換を行ないます。

使用するブロックの定義。
省略すると std を使用.
複数個の blocks の指定も可能.

blocks:std
std

1つの応答ブロックの定義.
一応全ての項目が省略可能ではあるけれど,
通常は最低限 file と file-encoding を使用する.
IRCで応答の追加削除等を行いたいときにはそれに更に設定を追加する形.
(IRC上で応答の追加削除は行うが保存はしない時に限ってfileを省略可能.)

機能:
- 通常応答(mask)
- 登録数確認(count-query/mask)
- 反応確認(request/modifier)
- 反応追加(add/modifier)
- 反応削除(remove/modifier)
通常応答以外は設定を省略することで機能を無効にできます。

データファイルと文字コードを指定します。
ファイルの中では一行に一つの"反応マスク:メッセージ"を書いて下さい。

file:reply.txt
file-encoding:euc

１つの発言で複数の反応マスクにマッチする場合,
どれにマッチするかは未定義です.
ただ, どちらか1つにのみマッチします.

同じ反応マスクに複数個のメッセージが記述してあった場合の処理.
multivalue: random #==> ランダムに1つ選択.
multivalue: all #==> 全て返す.
multivalue: seq #==> 順番に1つずつ返す.
省略時及び認識できなかったときは random.

multivalue:random

返す最大行数.
multivalue: all の時のみ有効.
(それ以外の時は1行しか返さない)
デフォルトは 5 行まで.

multivalue-limit:5

反応する人のマスク。
通常応答と登録数の返答時にチェックされる。

mask:* *!*@*

plum: mask: *!*@*

マッチした１つの反応マスクが実際に発言に反応する確率を指定します。
百分率です。省略された場合は100と見做されます。

rate:100

メッセージの登録数を返答するキーワードを指定します。
省略するとこの機能は無効になります。
指定したときだけこの機能が有効になります。
mask で許可された人(通常応答を返す人)が使えます。

count-query:反応登録数

メッセージの登録数を返答するときの反応を指定します。
formatで指定できるものと同じです。#(count)は登録数になります。
count-query を指定したときのみ必要。

count-format:反応は#(count)件登録されています。

メッセージを追加するキーワードを指定します。
ここで指定したキーワードを発言すると、新しいメッセージを追加します。
実際の追加方法は「<addで指定したキーワード> <追加するメッセージ>」です。
省略するとこの機能は無効になります。
指定したときだけこの機能が有効になります。
modifier で許可された人だけ使えます。

add:反応追加

反応が追加されたときの反応を指定します。
formatで指定できるものと同じです。#(message)は追加されたメッセージになります。

added-format:#(name|nick.now): #(key) に対する反応 #(message) を追加しました。

メッセージを削除するキーワードを指定します。
実際の削除方法は「<removeで指定したキーワード> <削除するキーワード>」です。
省略するとこの機能は無効になります。
指定したときだけこの機能が有効になります。
modifier で許可された人だけ使えます。

remove:反応削除

メッセージが削除されたときの反応を指定します。
formatで指定できるものと同じです。#(message)は削除されたメッセージになります。

removed-format:#(name|nick.now): #(key) #(message;に対する反応 %s|;) を #(count) 件削除しました。

反応の確認を行うためのキーワードを指定します。
通常応答と違って, multivalue-limit の制限を受けずに全てのマッチした応答を返します。
実際の指定方法は、「<requestで指定したキーワード> <チェックしたい発言>」です。
省略するとこの機能は無効になります。
指定したときだけこの機能が有効になります。
modifier で許可された人だけ使えます。

request:反応チェック

request に反応するときのフォーマットを指定します。
#(key) がキーワード、 #(message) が発言に置換されます。
request を指定したときのみ必要。

reply-format:「#(key)」という発言に「#(message)」と反応します。

request に反応する最大個数(反応マスクの数)を指定します。
(１つの反応マスクに対応するメッセージの数は制限されません。)
あまり大きな値を指定すると、アタックが可能になったり、ログが流れて邪魔なので注意してください。
通常の反応には関与しません。また、応答の行数ではありません。

max-reply:5

編集系コマンド, add とremove と request を許可する人。
省略された場合は「* *!*@*」(全員許可)と見做します。

modifier:* *!*@*

正規表現拡張を許可するか。省略された場合は禁止します。

use-re:1

## Auto::Response

データファイルの指定にしたがって反応する。

大量の反応データを定義するのに向いています。

データファイルのフォーマット
| pattern: re:^(こん(に)?ちは)
| rate: 90
| mask: * *!*@*
| #plum: mask: *!*@*
| response: こんにちは。
| response: いらっしゃいませ。
|
| pattern: おやすみ
| rate: 20
| response: おやすみなさい。
patternは一行しか書けません。(手抜き
maskもrateも省略できます。省略した場合はmaskは全員、rateは100となります。
responseは複数書いておけばランダムに選択されます。

データファイル

file:response.txt

文字コード

charset:euc

使用を許可する人&チャンネルのマスク。

mask:* *!*@*

plum: mask: +*!*@*