home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.madoka.org
/
2014.12.ftp.madoka.org.tar
/
ftp.madoka.org
/
pub
/
plum
/
2.x
/
plum2_32_1.lzh
/
module
/
auto
/
message.plm
< prev
next >
Wrap
Text File
|
1999-02-20
|
20KB
|
644 lines
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><!-- $_ if 0; # -*- perl -*-
# $Id: message.plm,v 2.74 1999/02/20 02:17:01 hasegawa Exp $
# copyright (c)1998-1999 Yoshinori Hasegawa <hasegawa@madoka.org>
package auto_message;
$INTERVAL = 3600;
$DATE = '%m/%d %H:%M';
$FORMAT = '#(date) #(from.name|from.nick|from.nick.now) >> #(message)';
$_ = 'auto_message';
sub module_disable {
local($userno) = @_;
local($no, $nick);
foreach $key (keys(%lasttime)) {
($no, $nick) = split(/$;/, $key, 2);
next unless $'userno[$no] == $userno;
delete $lasttime{$key};
}
}
sub server_close {
local($serverno) = @_;
local($no, $nick);
foreach $key (keys(%lasttime)) {
($no, $nick) = split(/$;/, $key, 2);
next unless $no == $serverno;
delete $lasttime{$key};
}
}
sub ss_join {
local($serverno, $prefix, $cmd, @params) = @_;
&receive($serverno, $prefix);
return ($prefix, $cmd, @params);
}
sub ss_nick {
local($serverno, $prefix, $cmd, @params) = @_;
local($nick);
$nick = &'prefix($prefix);
$lasttime{$serverno, $params[0]} = $lasttime{$serverno, $nick};
delete $lasttime{$serverno, $nick};
$user = $params[0] . substr($prefix, index($prefix, '!'));
&receive($serverno, $user);
return ($prefix, $cmd, @params);
}
sub ss_part {
local($serverno, $prefix, $cmd, @params) = @_;
&receive($serverno, $prefix);
return ($prefix, $cmd, @params);
}
sub ss_topic {
local($serverno, $prefix, $cmd, @params) = @_;
&receive($serverno, $prefix);
return ($prefix, $cmd, @params);
}
sub ss_kick {
local($serverno, $prefix, $cmd, @params) = @_;
&receive($serverno, $prefix);
return ($prefix, $cmd, @params);
}
sub ss_mode {
local($serverno, $prefix, $cmd, @params) = @_;
&receive($serverno, $prefix);
return ($prefix, $cmd, @params);
}
sub ss_privmsg {
local($serverno, $prefix, $cmd, @params) = @_;
local($userno, $str, $who, $text);
$userno = $'userno[$serverno];
if ($params[1]) {
foreach $get (&'property($userno, 'get')) {
next unless $params[1] eq $get;
&get($serverno, $prefix, $params[0]);
return ($prefix, $cmd, @params);
}
foreach $check (&'property($userno, 'check')) {
next unless $params[1] eq $check;
&check($serverno, $prefix, $params[0]);
return ($prefix, $cmd, @params);
}
($str, $who, $text) = split(/\s+/, $params[1], 3);
if ($text) {
foreach $send (&'property($userno, 'send')) {
next unless $str eq $send;
&send($serverno, $prefix, $params[0], $who, $text);
return ($prefix, $cmd, @params);
}
}
}
&receive($serverno, $prefix);
return ($prefix, $cmd, @params);
}
sub receive {
local($serverno, $prefix) = @_;
local($userno, $nick, $time, $int, @msg, %alias);
$userno = $'userno[$serverno];
$nick = &'prefix($prefix);
@msg = &get_msg($userno, $prefix);
if (@msg) {
%alias = &get_alias_user($userno, $prefix);
$alias{'nick.now'} = $nick;
$time = time();
$alias{'number'} = @msg;
$lasttime{$serverno, $nick} = 0 unless $lasttime{$serverno, $nick};
$int = &'property($userno, 'interval') || $INTERVAL;
if ($time - $lasttime{$serverno, $nick} > $int) {
foreach $reply (&'property($userno, 'receive')) {
&privmsg($serverno, $nick, &'format($reply, %alias));
}
}
$lasttime{$serverno, $nick} = $time;
} else {
$lasttime{$serverno, $nick} = 0;
}
}
sub get {
local($serverno, $prefix, $chan) = @_;
local($userno, $nick, @msg, $to, @data, %alias, %from, $date, @format);
$userno = $'userno[$serverno];
$nick = &'prefix($prefix);
%alias = &get_alias_user($userno, $prefix);
$alias{'nick.now'} = $nick;
if (&'channel($chan)) {
$alias{'channel'} = $chan;
$to = $chan;
} else {
$to = $nick;
}
@msg = &get_msg($userno, $prefix);
if (@msg) {
foreach $line (@msg) {
@data = split(/\s+/, $line, 5);
%from = &get_alias_user($userno, $data[2], 'from');
$from{'from.nick.now'} = &'prefix($data[2]);
if (&'channel($data[3])) {
$from{'from.channel'} = $data[3];
}
$from{'message'} = $data[4];
$date = &'property($userno, 'date') || $DATE;
$from{'date'} = &'date($date, $data[0]);
@format = &'property($userno, 'format');
if (@format) {
foreach $reply (@format) {
&privmsg($serverno, $nick, &'format($reply, %alias, %from));
}
} else {
&privmsg($serverno, $nick, &'format($FORMAT, %alias, %from));
}
}
&delete_msg($userno, @msg);
} else {
foreach $reply (&'property($userno, 'nothing')) {
&privmsg($serverno, $to, &'format($reply, %alias));
}
}
$lasttime{$serverno, $nick} = 0;
}
sub check {
local($serverno, $prefix, $chan) = @_;
local($userno, $nick, $time, @msg, %alias);
$userno = $'userno[$serverno];
$nick = &'prefix($prefix);
%alias = &get_alias_user($userno, $prefix);
$alias{'nick.now'} = $nick;
if (&'channel($chan)) {
$alias{'channel'} = $chan;
$to = $chan;
} else {
$to = $nick;
}
@msg = &get_msg($userno, $prefix);
if (@msg) {
$alias{'number'} = @msg;
foreach $reply (&'property($userno, 'exists')) {
&privmsg($serverno, $to, &'format($reply, %alias));
}
$lasttime{$serverno, $nick} = time();
} else {
foreach $reply (&'property($userno, 'nothing')) {
&privmsg($serverno, $to, &'format($reply, %alias));
}
$lasttime{$serverno, $nick} = 0;
}
}
sub send {
local($serverno, $prefix, $chan, $who, $text) = @_;
local($userno, $nick, %alias, %to, $to);
$userno = $'userno[$serverno];
$nick = &'prefix($prefix);
%alias = &get_alias_user($userno, $prefix);
$alias{'nick.now'} = $nick;
$alias{'to'} = $who;
if (&'channel($chan)) {
$alias{'channel'} = $chan;
$to = $chan;
} else {
$to = $nick;
}
%to = &get_alias_name_nick($userno, $who, 'to');
if (%to || $who =~ /^[A-\}][\-\dA-\}]*$/ && length($who) <= 9) {
&add_msg($userno, join(' ', time(), $who, $prefix, $chan, $text));
foreach $reply (&'property($userno, 'accept')) {
&privmsg($serverno, $to, &'format($reply, %alias, %to));
}
} else {
foreach $reply (&'property($userno, 'unknown')) {
&privmsg($serverno, $to, &'format($reply, %alias));
}
}
}
sub privmsg {
local($serverno, $to, $msg) = @_;
&'s_print($serverno, '', 'PRIVMSG', $to, $msg);
foreach $cno (&'array($'clientlist)) {
next unless $'avail[$cno];
next unless $'server[$cno] == $serverno;
&'c_print($cno, &'user($cno), 'PRIVMSG', $to, $msg);
}
}
sub get_msg {
local($userno, $prefix) = @_;
local($nick, @list, $name, $code, $line, @data, %alias, $regex);
@list = ();
$nick = &'prefix($prefix);
($name, $code) = &filename(&'property($userno, 'file'));
if (open(FILE, $name)) {
while (defined($line = <FILE>)) {
$line =~ tr/\r\n//d;
next unless $line;
$line = &code_jis($line, $code) if $code;
@data = split(/\s+/, $line, 5);
if (&check_alias($userno, $prefix, $data[1])) {
push(@list, $line);
}
}
close(FILE);
}
return @list;
}
sub add_msg {
local($userno, $msg) = @_;
local($name, $code);
($name, $code) = &filename(&'property($userno, 'file'));
$msg = &jis_code($msg, $code) if $code;
if (open(FILE, ">>$name")) {
print FILE $msg, "\n";
close(FILE);
}
}
sub delete_msg {
local($userno, @list) = @_;
local($name, $code, $list, @msg);
@msg = ();
($name, $code) = &filename(&'property($userno, 'file'));
if (open(FILE, $name)) {
$list = &'list(@list);
while (defined($line = <FILE>)) {
$line =~ tr/\r\n//d;
next unless $line;
$line = &code_jis($line, $code) if $code;
next if &'exist($list, $line);
push(@msg, $line);
}
close(FILE);
if (open(FILE, ">$name")) {
foreach $line (@msg) {
$line = &jis_code($line, $code) if $code;
print FILE $line, "\n";
}
close(FILE);
}
}
}
sub get_alias_user {
local($userno, $from, $prefix) = @_;
local($file, @list);
$file = &'property($userno, 'alias');
foreach $list (&split_list('nick', &read_file($file))) {
@list = &'array($list);
if (&match_alias_user($from, @list)) {
return &parse_alias($prefix, @list);
}
}
return ();
}
sub get_alias_name_nick {
local($userno, $from, $prefix) = @_;
local($file, @list);
$file = &'property($userno, 'alias');
foreach $list (&split_list('nick', &read_file($file))) {
@list = &'array($list);
if (&match_alias_name_nick($from, @list)) {
return &parse_alias($prefix, @list);
}
}
return ();
}
sub check_alias {
local($userno, $from, $name) = @_;
local($file, @list, $nick);
$file = &'property($userno, 'alias');
foreach $list (&split_list('nick', &read_file($file))) {
@list = &'array($list);
if (&match_alias_name_nick($name, @list)) {
if (&match_alias_user($from, @list)) {
return 1;
} else {
return 0;
}
}
}
$nick = &'prefix($from);
if ("\L$name\E" eq "\L$nick\E") {
return 1;
} else {
return 0;
}
}
sub match_alias_user {
local($from, @list) = @_;
local($var, $arg, $regex);
foreach $line (@list) {
($var, $arg) = split(/\s+/, $line, 2);
next unless "\L$var\E" eq 'user';
$regex = &'regex($arg);
next unless $from =~ /$regex/i;
return 1;
}
return 0;
}
sub match_alias_name_nick {
local($from, @list) = @_;
local($var, $arg);
foreach $line (@list) {
($var, $arg) = split(/\s+/, $line, 2);
if ("\L$var\E" eq 'name') {
foreach $name (split(/\s+/, $arg)) {
next unless $from eq $name;
return 1;
}
} elsif ("\L$var\E" eq 'nick') {
next unless &'exist(&'list(split(/\s+/, $arg)), $from);
return 1;
}
}
return 0;
}
sub parse_alias {
local($prefix, @list) = @_;
local(%alias, $var, $arg, $key);
%alias = ();
foreach $line (@list) {
($var, $arg) = split(/\s+/, $line, 2);
$var = "\L$var\E";
if ($prefix) {
$key = $prefix . '.' . $var;
} else {
$key = $var;
}
next if defined($alias{$key});
if ($var eq 'nick') {
$alias{$key} = (split(/\,/, $arg))[0];
} elsif ($var eq 'name') {
$alias{$key} = (split(/\s+/, $arg))[0];
} else {
$alias{$key} = $arg;
}
}
return %alias;
}
sub split_list {
local($field, @list) = @_;
local($var, $arg, @array, @entry);
$field = "\L$field\E";
@array = ();
@entry = ();
foreach $line (@list) {
($var, $arg) = split(/\s*\:\s*/, $line, 2);
if ($field eq "\L$var\E") {
push(@array, &'list(@entry)) if @entry;
@entry = ();
}
push(@entry, $var . ' ' . $arg);
}
push(@array, &'list(@entry)) if @entry;
return @array;
}
sub read_file {
local($file) = @_;
local($name, $code, $mtime, @data, $line);
($name, $code) = &filename($file);
$mtime = (stat($name))[9];
if (defined($mtime)) {
$modify{$name} = -1 unless defined($modify{$name});
if ($modify{$name} != $mtime) {
if (open(TMP, $name)) {
@data = ();
while (defined($line = <TMP>)) {
$line =~ s/^\s+//;
next if $line =~ /^[\#\;]/;
$line =~ tr/\r\n//d;
next unless $line;
$line =~ s/\s+$//;
$line = &code_jis($line, $code) if $code;
push(@data, $line);
}
close(TMP);
$modify{$name} = $mtime;
$cache{$name} = &'list(@data);
return @data;
}
} else {
return &'array($cache{$name});
}
}
return ();
}
sub filename {
local($file) = @_;
local($idx, $name, $code);
return ('', '') unless $file;
if (($idx = rindex($file, ';')) != -1) {
$name = substr($file, 0, $idx);
$code = substr($file, $idx + 1);
} else {
$name = $file;
$code = '';
}
return (&'expand($name), $code);
}
sub code_jis {
local($line, $list) = @_;
foreach $code (split(/\,/, "\L$list\E")) {
if ($code eq 'euc') {
$line = &'euc_jis($line);
} elsif ($code eq 'jis') {
$line = &'jis_jis($line);
} elsif ($code eq 'sjis') {
$line = &'sjis_jis($line);
}
}
return $line;
}
sub jis_code {
local($line, $list) = @_;
local($code);
$code = (split(/\,/, "\L$list\E"))[0];
if ($code eq 'euc') {
$line = &'jis_euc($line);
} elsif ($code eq 'jis') {
$line = &'jis_jis($line);
} elsif ($code eq 'sjis') {
$line = &'jis_sjis($line);
}
return $line;
}
__END__
--><HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-2022-JP">
<LINK REV="made" HREF="mailto:hasegawa@madoka.org">
<TITLE>auto/message.plm</TITLE></HEAD><BODY>
$B%*%s%i%$%s%I%-%e%a%s%H(B
<HR><H3>$BL>A0(B</H3>
auto/message.plm - $B%f!<%64V$G%a%C%;!<%8$NAw<u?.$r9T$($k$h$&$K$9$k(B
<HR><H3>$B@bL@(B</H3>
$B%f!<%64V$GAj8_$K%a%C%;!<%8$N$d$j$H$j$,$G$-$k$h$&$K$7$^$9!#(B
$B%a%C%;!<%8$rAw$k$?$a$NH/8@$,$"$k$H!"$=$NAw$j@h$H%a%C%;!<%8$NFbMF$r(B
$B%U%!%$%k$KJ]B8$7$^$9!#%f!<%6$,%A%c%s%M%k$KF~$C$F$-$?$j!"%K%C%/%M!<%`$r(B
$BJQ99$7$?$H$-$J$I$K!"$=$N%f!<%608$N%a%C%;!<%8$,$J$$$+$I$&$+3NG'$7!"(B
$B%a%C%;!<%8$,$"$l$P!"%a%C%;!<%8$,$"$k$3$H$rEA$($^$9!#(B
$B%a%C%;!<%8$NAw$j@h$O4pK\E*$K%K%C%/%M!<%`$G;XDj$9$kI,MW$,$"$j$^$9$,!"(B
$B%(%$%j%"%9$r;2>H$9$k$3$H$G4A;z$r4^$s$@L>A0$r;H$&$3$H$b$G$-$^$9!#(B
$B%a%C%;!<%8$r<u$1$H$k$?$a$NH/8@$,$"$k$H!"%U%!%$%k$NCf$+$i$=$N%f!<%6$K(B
$BBP$7$FAw$i$l$?%a%C%;!<%8$rH/8@$7!"%U%!%$%k$KJ]B8$5$l$?%a%C%;!<%8$r(B
$B:o=|$7$^$9!#Aw$C$?%a%C%;!<%8$rAj<j$,<u$1$H$C$?$+$I$&$+3NG'$9$kJ}K!$O(B
$B$"$j$^$;$s!#$^$?!"0lEYAw$C$?%a%C%;!<%8$OJQ99$d:o=|$9$k$3$H$O$G$-$^$;$s!#(B
<HR><H3>$B%W%m%Q%F%#(B</H3>
<DL>
<DT> auto.message.file $B%U%!%$%kL>(B[;({jis|euc|sjis})]
</DT>
<DD> $B%a%C%;!<%8$r3JG<$9$k%U%!%$%k$r;XDj$7$^$9!#$3$N%U%!%$%k$OIaDL$N(B
$B%F%-%9%H%U%!%$%k$G!"0l9T$K$D$-0l$D$N%a%C%;!<%8$,J]B8$5$l$^$9!#(B
$B4A;z%3!<%I$O%G%U%)%k%H$G$O(Bjis$B$GJ]B8$5$l$^$9$,!"$=$l0J30$N(B
$B4A;z%3!<%I$GJ]B8$7$?$$>l9g$O!"%U%!%$%kL>$N8e$K%;%_%3%m%s$G(B
$B6h@Z$C$F4A;z%3!<%I$r;XDj$7$^$9!#(B
</DD>
<DT> auto.message.alias $B%U%!%$%kL>(B[;({jis|euc|sjis})]
</DT>
<DD> $B%(%$%j%"%9$r;2>H$9$k%U%!%$%k$r;XDj$7$^$9!#(B
$BE,@Z$K%(%$%j%"%9$r@_Dj$7$F$*$/$3$H$G!"Aw$j@h$K%K%C%/%M!<%`$@$1(B
$B$G$O$J$/!"G$0U$NL>A0$r;XDj$9$k$3$H$,$G$-$^$9!#(B
$B$^$?!"Aw$j85$NL>A0$b%K%C%/%M!<%`$G$O$J$/!"%(%$%j%"%9$H$7$F(B
$BDj5A$5$l$F$$$kL>A0$r;H$$$^$9!#(B
$B$3$N%U%!%$%k$O(Bauto/alias.plm$B$G07$($k%U%!%$%k$HF1$87A<0$G$9!#(B
$B%U%!%$%k$N4A;z%3!<%I$,(Bjis$B0J30$N>l9g$O!"$=$N4A;z%3!<%I$r(B
$B;XDj$9$kI,MW$,$"$j$^$9!#(B
</DD>
<DT> auto.message.get* $BJ8;zNs(B
</DT>
<DD> $B%a%C%;!<%8$r<u$1$H$k$?$a$NJ8;zNs$r;XDj$7$^$9!#(B
$B$3$3$G;XDj$7$?J8;zNs$HF1$8J8;zNs$,H/8@$5$l$k$H!"(B
$B$=$N?M$KBP$7$FAw$i$l$?%a%C%;!<%8$r%U%!%$%kCf$+$i(B
$B8!:w$7$FH/8@$7$^$9!#(B
</DD>
<DT> auto.message.send* $BJ8;zNs(B
</DT>
<DD> $B%a%C%;!<%8$rAw$k$?$a$NJ8;zNs$r;XDj$7$^$9!#(B
$B$3$3$G;XDj$7$?J8;zNs$KB3$1$FAw$j@h$N%K%C%/%M!<%`$+L>A0$H(B
$B%a%C%;!<%8$NFbMF$r6uGr$G6h@Z$C$FH/8@$9$k$3$H$K$h$j!"(B
$B$=$N%a%C%;!<%8$r%U%!%$%k$KJ]B8$7$^$9!#(B
</DD>
<DT> auto.message.check* $BJ8;zNs(B
</DT>
<DD> $B%a%C%;!<%8$,FO$$$F$$$k$+$I$&$+3NG'$9$k$?$a$NJ8;zNs$r;XDj$7$^$9!#(B
$B$3$3$G;XDj$7$?J8;zNs$HF1$8J8;zNs$,H/8@$5$l$k$H!"(B
$B$=$N?M$KBP$7$FAw$i$l$?%a%C%;!<%8$,$"$k$+$I$&$+3NG'$7!"(B
$B$=$N7k2L$rH/8@$7$^$9!#(B
</DD>
<DT> auto.message.date $BJ8;zNs(B
</DT>
<DD> auto.message.format$B$G;XDj$9$k$3$H$N$G$-$kCM$N$&$A!"(B
#(date)$B$GCV49$5$l$kF|IU$N%U%)!<%^%C%H$r;XDj$7$^$9!#(B
$B%G%U%)%k%H$G$O!V(B%m/%d %H:%M$B!W$H$J$C$F$$$^$9!#(B
</DD>
<DT> auto.message.format* $B%U%)!<%^%C%H(B
</DT>
<DD> $BAw$j@h$K%a%C%;!<%8$rAw$k$H$-$K!"$I$N$h$&$J7A<0$GH/8@$9$k$+$r(B
$B;XDj$7$^$9!#%U%)!<%^%C%H$K(B#(nick)$B$N$h$&$K=q$/$3$H$G!"(B
$B%a%C%;!<%8$r<u$1$H$k?M$N%(%$%j%"%9$NBP1~$9$kCM$GCV$-49$($^$9!#(B
$B$^$?!"%a%C%;!<%8$rAw$C$??M$N%(%$%j%"%9$O(B#(from.nick)$B$N$h$&$J7A<0(B
$B$GCV49$9$k$3$H$,$G$-$^$9!#%(%$%j%"%90J30$N>pJs$H$7$F$O!"(B
#(date)$B$G%a%C%;!<%8$rAw$C$?F|IU$H;~9o$r!"(B#(message)$B$G(B
$B%a%C%;!<%8$NFbMF$r$=$l$>$lCV$-49$($^$9!#(B
$B$^$?!"3g8LFb$r!V(B|$B!W$G6h@Z$C$FJ#?t;XDj$7$?>l9g!"(B
$B:G=i$KDj5A$5$l$F$$$kCM$GCV$-49$($^$9!#(B
</DD>
<DT> auto.message.accept* $B%U%)!<%^%C%H(B
</DT>
<DD> $B%a%C%;!<%8$r@5$7$/<u$1<h$C$?$H$-$K!"$3$3$G;XDj$7$?$b$N$r(B
$BH/8@$7$^$9!#%U%)!<%^%C%H$K(B#(nick)$B$N$h$&$K;XDj$9$k$3$H$G!"(B
$B%a%C%;!<%8$NAw$j85$N%(%$%j%"%9$NBP1~$9$kCM$GCV$-49$($^$9!#(B
$B$^$?!"(B#(to)$B$G%a%C%;!<%8$NAw$j@h$H$7$F;XDj$7$?L>A0$r!"(B
#(to.nick)$B$N$h$&$K!V(Bto.$B!W$rIU$1$k$3$H$G!"%a%C%;!<%8$NAw$j@h$N(B
$B%(%$%j%"%9$NBP1~$9$kCM$GCV$-49$($^$9!#(B
</DD>
<DT> auto.message.unknown* $B%U%)!<%^%C%H(B
</DT>
<DD> $B%a%C%;!<%8$rAw$kAj<j$,$o$+$i$J$$$H$-$K!"$3$3$G;XDj$7$?$b$N$r(B
$BH/8@$7$^$9!#%U%)!<%^%C%H$K(B#(nick)$B$N$h$&$K;XDj$9$k$3$H$G!"(B
$B%a%C%;!<%8$NAw$j85$N%(%$%j%"%9$NBP1~$9$kCM$GCV$-49$($^$9!#(B
$B$^$?!"(B#(to)$B$G%a%C%;!<%8$rAw$m$&$H$7$?Aj<j$NL>A0$KCV$-49$($^$9!#(B
</DD>
<DT> auto.message.receive* $B%U%)!<%^%C%H(B
</DT>
<DD> $B%A%c%s%M%k$KF~$C$F$-$?;~$d!"%K%C%/%M!<%`$rJQ99$7$?;~$K!"(B
$B$=$N?M$KBP$9$k%a%C%;!<%8$,FO$$$F$$$l$P!"$3$3$G;XDj$7$?$b$N$r(B
$BH/8@$7$^$9!#%U%)!<%^%C%H$K(B#(nick)$B$N$h$&$K;XDj$9$k$3$H$G!"(B
$B%a%C%;!<%8$NAw$j85$N%(%$%j%"%9$NBP1~$9$kCM$GCV$-49$($^$9!#(B
$B$^$?!"(B#(number)$B$GFO$$$F$$$k%a%C%;!<%8$N?t$KCV$-49$($^$9!#(B
</DD>
<DT> auto.message.nothing* $B%U%)!<%^%C%H(B
</DT>
<DD> $B%a%C%;!<%8$r<u$1<h$m$&$H$7$?$,!"%a%C%;!<%8$,(B
$BFO$$$F$$$J$+$C$?$H$-!"$3$3$G;XDj$7$?$b$N$rH/8@$7$^$9!#(B
$B%U%)!<%^%C%H$K(B#(nick)$B$N$h$&$K;XDj$9$k$3$H$G!"(B
$B%(%$%j%"%9$NBP1~$9$kCM$GCV$-49$($^$9!#(B
</DD>
<DT> auto.message.exists* $B%U%)!<%^%C%H(B
</DT>
<DD> $B%a%C%;!<%8$,FO$$$F$$$k$+$I$&$+3NG'$7$?$H$-$K!"(B
$BFO$$$F$$$k%a%C%;!<%8$,$"$l$P!"$3$3$G;XDj$7$?$b$N$rH/8@$7$^$9!#(B
</DD>
</DL>
<HR><H3>$B@_DjNc(B</H3>
<PRE>
+ auto/message.plm
auto.message.file: message.txt;jis
auto.message.alias: alias.txt;jis,euc
auto.message.get: $BEA8@65$($F(B
auto.message.send: $BEA8@(B
auto.message.check: $BEA8@$"$k(B?
auto.message.format: #(from.name|from.nick.now)$B$5$s$+$i!"!V(B#(message)$B!W(B
auto.message.accept: #(to)$B$5$s$X$NEA8@$r3P$($^$7$?(B
auto.message.unknown: #(to)$B$5$s$H$$$&$N$OC/$G$9$+(B?
auto.message.receive: #(number)$B8D$NEA8@$,FO$$$F$$$^$9!#!VEA8@65$($F!W$G$*EA$($7$^$9!#(B
auto.message.nothing: #(name|nick.now)$B$5$s$X$NEA8@$O$"$j$^$;$s(B
auto.message.exists: #(name|nick.now): #(number)$B8D$NEA8@$,$"$j$^$9!#(B
</PRE>
$B!VEA8@(B pupu_j $B$[$($[$(!W$N$h$&$KH/8@$9$k$H!"(B
$B!V(Bpupu_j$B!W$H$$$&%K%C%/%M!<%`$N?M$K!V$[$($[$(!W$H$$$&%a%C%;!<%8$rEA$($^$9!#(B
$B$^$?!V(Balias.txt$B!W$K;XDj$5$l$F$$$kL>A0$r;H$C$F!"(B
$B!VEA8@(B $B$W$W(B $B$[$($[$(!W$N$h$&$K$7$F%a%C%;!<%8$rEA$($k$3$H$b$G$-$^$9!#(B
<BR><BR>
$B%a%C%;!<%8$,FO$$$F$$$k$H$-$K!"%A%c%s%M%k$KF~$C$?$j!"(B
$B%K%C%/%M!<%`$rJQ99$9$k$H!"!VEA8@$,FO$$$F$$$^$9!#!VEA8@65$($F!W$G8+$i$l$^$9!W(B
$B$H8@$C$FCN$i$;$^$9!#%a%C%;!<%8$,FO$$$F$$$k$H$-$K!"(B
$B!VEA8@65$($F!W$HH/8@$9$k$H!"FO$$$F$$$k%a%C%;!<%8$rJ9$/$3$H$,$G$-$^$9!#(B
</BODY></HTML>