home *** CD-ROM | disk | FTP | other *** search
/ ftp.madoka.org / 2014.12.ftp.madoka.org.tar / ftp.madoka.org / pub / plum / plum2_33_1.lzh / module / auto / yuurii.plm < prev   
Text File  |  1999-03-24  |  15KB  |  548 lines

  1. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><!-- $_ if 0; # -*- perl -*-
  2. # $Id: yuurii.plm,v 2.31 1999/01/20 14:47:54 hasegawa Exp $
  3. # copyright (c)1997-1999 Yoshinori Hasegawa <hasegawa@madoka.org>
  4.  
  5. package auto_yuurii;
  6.  
  7. $PLUGINRC = '.pluginrc';
  8. $CACHE = 50;
  9. $DOWN = 48;
  10. $DOWNMES = 'auto down';
  11. $TIMER = 2000;
  12. $USETIMER = 0;
  13. $HEADER = '%H:%M';
  14. $DEBUG = 'logdebug';
  15. $MODE = umask() ^ 0666;
  16. $CLIENTINFO = 'HELP';
  17.  
  18. undef @modify;
  19. undef %modify;
  20.  
  21. $_ = 'auto_yuurii';
  22.  
  23. sub main_loop {
  24.   local($userno) = @_;
  25.   local($sno, $nowtime, $hour, $day, $usetimer);
  26.   foreach $sno (&'array($'serverlist)) {
  27.     next unless $'avail[$sno];
  28.     next unless $'userno[$sno] == $userno;
  29.     $nowtime[$userno] = time();
  30.     $lasttime[$userno] = $nowtime[$userno] unless $lasttime[$userno];
  31.     $usetimer = &'property($userno, 'usetimer') || $USETIMER;
  32.     &do_yuurii($sno, 'do_timer', '', '', $sno, $usetimer) if $usetimer;
  33.     $lasttime[$userno] = $nowtime[$userno];
  34.     ($hour, $day) = (localtime())[2, 3];
  35.     $lastday[$userno] = $hour unless defined($lastday[$userno]);
  36.     $lasthour[$userno] = $day unless defined($lasthour[$userno]);
  37.     if ($lastday[$userno] != $day && defined(&daily)) {
  38.       &do_yuurii($sno, 'daily', '', 'bot_timer');
  39.     }
  40.     if ($lasthour[$userno] != $hour && defined(&hourly)) {
  41.       &do_yuurii($sno, 'hourly', '', 'bot_timer');
  42.     }
  43.     $lastday[$userno] = $day;
  44.     $lasthour[$userno] = $hour;
  45.   }
  46. }
  47.  
  48. sub ss_invite {
  49.   local($serverno, $prefix, $cmd, @params) = @_;
  50.   local($nick);
  51.   $nick = &'prefix($prefix);
  52.   &do_yuurii($serverno, 'plugin', $prefix, $cmd, $params[1], $nick, '');
  53.   return ($prefix, $cmd, @params);
  54. }
  55.  
  56. sub ss_join {
  57.   local($serverno, $prefix, $cmd, @params) = @_;
  58.   local($userno, $nick, $name, $mode, $timer);
  59.   $userno = $'userno[$serverno];
  60.   $nick = &'prefix($prefix);
  61.   ($name, $mode) = split(/\cG/, $params[0]);
  62.   if ($nick eq $'nick[$serverno]) {
  63.     $timer = &'property($userno, 'timer') || $TIMER;
  64.     $channeltimer{$serverno, $name} = $timer;
  65.   } else {
  66.     &do_yuurii($serverno, 'plugin', $prefix, $cmd, $name, $nick, '');
  67.   }
  68.   return ($prefix, $cmd, @params);
  69. }
  70.  
  71. sub ss_nick {
  72.   local($serverno, $prefix, $cmd, @params) = @_;
  73.   local($nick);
  74.   $nick = &'prefix($prefix);
  75.   &do_yuurii($serverno, 'plugin', $prefix, $cmd, 'ALL', $params[0], $nick) if $params[0] ne $'nick[$serverno];
  76.   return ($prefix, $cmd, @params);
  77. }
  78.  
  79. sub ss_part {
  80.   local($serverno, $prefix, $cmd, @params) = @_;
  81.   local($nick);
  82.   $nick = &'prefix($prefix);
  83.   &do_yuurii($serverno, 'plugin', $prefix, $cmd, $params[0], $nick, $params[1]) if $nick ne $'nick[$serverno];
  84.   return ($prefix, $cmd, @params);
  85. }
  86.  
  87. sub ss_privmsg {
  88.   local($serverno, $prefix, $cmd, @params) = @_;
  89.   local($userno, $nick, $vchan, $tmp, $rest, $ctcp);
  90.   $nick = &'prefix($prefix);
  91.   $vchan = &'alias($params[0]);
  92.   $tmp = '';
  93.   $rest = $params[1];
  94.   while ($rest =~ /^(.*)\cA([^\cA]*)\cA(.*)$/) {
  95.     $tmp .= $1;
  96.     $ctcp = $2;
  97.     $rest = $3;
  98.     &do_ctcp($serverno, $prefix, $vchan, $ctcp);
  99.   }
  100.   $tmp .= $rest || '';
  101.   &do_yuurii($serverno, 'plugin', $prefix, $cmd, $params[0], $nick, $params[1]);
  102.   return ($prefix, $cmd, @params);
  103. }
  104.  
  105. sub cpss_help {
  106.   local($serverno, $prefix, $cmd, @params) = @_;
  107.   local($userno, $nick);
  108.   $userno = $'userno[$serverno];
  109.   $nick = &'prefix($prefix);
  110.   if (@help) {
  111.     foreach $help (@help) {
  112.       &'s_print($serverno, '', 'NOTICE', $nick, $help);
  113.     }
  114.   } else {
  115.     &'s_print($serverno, '', 'NOTICE', $nick, 'no help');
  116.   }
  117.   return ($prefix, $cmd, @params);
  118. }
  119.  
  120. sub do_yuurii {
  121.   local($serverno, $sub, $prefix, $command, @args) = @_;
  122.   local($userno, $vchan, $my_nick, $from, $where, $chanlist, $autojoinchanlist, %nameslist, %time_count, @cache_mes, $down, $down_mes, $logmode, $use_timer, $timer_count_def, $^W);
  123.   $userno = $'userno[$serverno];
  124.   $my_nick = $'nick[$serverno];
  125.   if (index($prefix, '!') != -1) {
  126.     $from = substr($prefix, 0, index($prefix, '!'));
  127.     $where = substr($prefix, index($prefix, '!') + 1);
  128.   } else {
  129.     $from = $prefix;
  130.     $where = '';
  131.   }
  132.   $chanlist = $;;
  133.   $autojoinchanlist = $;;
  134.   foreach $chan (&'array($'channellist[$serverno])) {
  135.     $vchan = &'alias($chan);
  136.     $chanlist .= $vchan . $;;
  137.     $autojoinchanlist .= $vchan . $;;
  138.     $nameslist{$vchan} = $; . join($;, &'array($'nameslist{$serverno, $chan})) . $;;
  139.     $time_count{$vchan} = $channeltimer{$serverno, $chan};
  140.   }
  141.   @cache_mes = &'array($messagelist[$serverno]);
  142.   $down = &'property($userno, 'down') || $DOWN;
  143.   $down_mes = &'property($userno, 'downmes') || $DOWNMES;
  144.   $timer_count_def = &'property($userno, 'timer') || $TIMER;
  145.   $use_timer = &'property($userno, 'usetimer') ? 'on' : 'off';
  146.   $logmode = &'property($userno, 'mode');
  147.   if (defined($logmode)) {
  148.     $logmode = oct($logmode) | 0600;
  149.   } else {
  150.     $logmode = $MODE | 0600;
  151.   }
  152.   $^W = 0;
  153.   &$sub(@args) if defined(&$sub);
  154.   foreach $chan (&'array($'channellist[$serverno])) {
  155.     $vchan = &'alias($chan);
  156.     $channeltimer{$serverno, $chan} = $time_count{$vchan};
  157.   }
  158.   $messagelist[$serverno] = &'list(@cache_mes);
  159. }
  160.  
  161. sub do_timer {
  162.   local($serverno, $usetimer) = @_;
  163.   local($userno, $i);
  164.   for ($i = $lasttime[$userno]; $i < $nowtime[$userno]; $i++) {
  165.     foreach $chan (&'array($'channellist[$serverno])) {
  166.       $channeltimer{$serverno, $chan} -= 1 if $channeltimer{$serverno, $chan} > 0;
  167.       $channeltimer{$serverno, $chan}++ if $channeltimer{$serverno, $chan} < 0;
  168.     }
  169.     next unless $i % $usetimer == 0;
  170.     &plugin($serverno, '', 'bot_timer', '', '', '');
  171.   }
  172. }
  173.  
  174. sub do_ctcp {
  175.   local($serverno, $prefix, $chan, $msg) = @_;
  176.   local($userno, $cmd, $mes);
  177.   $userno = $'userno[$serverno];
  178.   ($cmd, $mes) = split(/\s+/, $msg, 2);
  179.   &do_yuurii($serverno, "ctcp_\L$cmd\E", $prefix, 'privmsg', $mes);
  180. }
  181.  
  182. sub plugin {
  183.   local(@args) = @_;
  184.   local($pluginrc, $mtime, $sub, @plugin);
  185.   $pluginrc = &'expand(&'property($userno, 'pluginrc') || $PLUGINRC);
  186.   $mtime = (stat($pluginrc))[9];
  187.   $sub = 'pluginsub_' . $userno;
  188.   if (defined($mtime) && ($modify[$userno] || 0) != $mtime) {
  189.     $modify[$userno] = $mtime;
  190.     if (open(PLUGIN, $pluginrc)) {
  191.       @plugin = <PLUGIN>;
  192.       close(PLUGIN);
  193.       undef &$sub if defined(&$sub);
  194.       eval('sub ' . $sub . ' { ' . join('', @plugin) . ' }');
  195.     }
  196.   }
  197.   &$sub(@args) if defined(&$sub);
  198. }
  199.  
  200. sub local_chan {
  201.   local($chan) = @_;
  202.   if ($chan) {
  203.     return (&'real($chan), &'alias($chan));
  204.   } else {
  205.     return ('', '');
  206.   }
  207. }
  208.  
  209. sub now_time {
  210.   ($sec, $min, $hour, $mday, $mon, $year) = localtime(time());
  211.   $mon++;
  212.   $year += 1900;
  213.   $header = &'property($userno, 'header');
  214.   $header = $HEADER unless defined($header);
  215.   $header = &'date($header) . ' ';
  216. }
  217.  
  218. sub redo {
  219.   local($file) = @_;
  220.   local($mtime, @names, $sub, $sublist, $plugin);
  221.   $plugin = &search_file($file);
  222.   $mtime = (stat($plugin))[9];
  223.   return unless defined($mtime);
  224.   return if (($modify{$file} || 0) == $mtime);
  225.   $modify{$file} = $mtime;
  226.   if (defined($sublist{$file})) {
  227.     foreach $name (&'array($sublist{$file})) {
  228.       undef &$name if defined(&$name);
  229.     }
  230.   }
  231.   if ($] < 5) {
  232.     @names = keys(%_auto_yuurii);
  233.   } else {
  234.     eval '@names = keys(%auto_yuurii::)';
  235.   }
  236.   foreach $name (@names) {
  237.     $sub = "auto_yuurii\'$name";
  238.     $sublist = &'add($sublist, $sub) if defined(&$sub);
  239.   }
  240.   do $plugin;
  241.   if ($] < 5) {
  242.     @names = keys(%_auto_yuurii);
  243.   } else {
  244.     eval '@names = keys(%auto_yuurii::)';
  245.   }
  246.   foreach $name (@names) {
  247.     $sub = "auto_yuurii\'$name";
  248.     next unless defined(&$sub);
  249.     next if &'exist($sublist, $sub);
  250.     $sublist{$file} = &'add($sublist{$file}, $sub);
  251.   }
  252. }
  253.  
  254. sub search_file {
  255.   local($file) = @_;
  256.   local($path);
  257.   if (-r $file) {
  258.     return $file;
  259.   } else {
  260.     foreach $dir (&'property($userno, 'plugindir'), @INC) {
  261.       if (-r "$dir/$file") {
  262.         return "$dir/$file";
  263.       }
  264.       $path = &'expand($dir);
  265.       if (-r "$path/$file") {
  266.         return "$path/$file";
  267.       }
  268.     }
  269.     return '';
  270.   }
  271. }
  272.  
  273. sub sendCok {
  274.   local($msg) = @_;
  275.   local($prefix, $cmd, @params);
  276.   $msg =~ tr/\r\n//d;
  277.   ($prefix, $cmd, @params) = &'parse($msg);
  278.   foreach $cno (&'array($'clientlist)) {
  279.     next unless $'avail[$cno];
  280.     next unless $'server[$cno] == $serverno;
  281.     &'c_print($cno, $prefix, $cmd, @params);
  282.   }
  283. }
  284.  
  285. sub sendCchan {
  286.   local($msg) = @_;
  287.   &sendCok($msg);
  288. }
  289.  
  290. sub sendChan2 {
  291.   local($msg) = @_;
  292.   &sendCok($msg);
  293. }
  294.  
  295. sub sendS {
  296.   local($msg) = @_;
  297.   if ($serverno && $'avail[$serverno]) {
  298.     $msg =~ tr/\r\n//d;
  299.     &'s_print($serverno, &'parse($msg));
  300.   }
  301. }
  302.  
  303. sub sendSCL {
  304.   local($msg, $chan) = @_;
  305.   local($rchan, $vchan, $cache);
  306.   ($rchan, $vchan) = &local_chan($chan);
  307.   $msg = &'euc_jis($msg);
  308.   &sendCok(":$'nick[$serverno] PRIVMSG $rchan :$msg\n");
  309.   &sendS("PRIVMSG $rchan :$msg\n");
  310.   push(@cache_mes, ">$vchan< $msg");
  311.   $cache = &'property($userno, 'cache') || $CACHE;
  312.   while (@cache_mes > $cache) {
  313.     shift(@cache_mes);
  314.   }
  315. }
  316.  
  317. sub cached {
  318.   local($msg, $chan) = @_;
  319.   local($vchan);
  320.   $vchan = &'alias($chan);
  321.   return if &'exist(&'list(@cache_mes), ">$vchan< $msg");
  322.   &sendSCL($msg, $chan);
  323. }
  324.  
  325. sub InitList {
  326.   $_[0] = $;;
  327. }
  328.  
  329. sub AddList {
  330.   if (&ExistList($list, $item)) {
  331.     return 0;
  332.   } else {
  333.     $_[0] .= $item . $;;
  334.     return 1;
  335.   }
  336. }
  337.  
  338. sub DelList {
  339.   local($list, $item);
  340.   $idx = index("\L$list\E", $; . "\L$item\E" . $;);
  341.   substr($_[0], $idx, length($; . $item . $;)) = $; if $idx != -1;
  342. }
  343.  
  344. sub ExistList {
  345.   local($list, $item) = @_;
  346.   if (index("\L$list\E", "\L$;$item$;\E") != -1) {
  347.     return 1;
  348.   } else {
  349.     return 0;
  350.   }
  351. }
  352.  
  353. sub Debug {
  354.   local($msg, $chan) = @_;
  355.   local($header, $debug);
  356.   $debug = &'expand(&'property($userno, 'debug') || $DEBUG);
  357.   $debug = &'date($debug);
  358.   $header = &'property($userno, 'header');
  359.   $header = $HEADER unless defined($header);
  360.   $header = &'date($header);
  361.   if (open(DEBUG, ">>$debug")) {
  362.     select((select(DEBUG), $| = 1)[0]);
  363.     print DEBUG $header, ' ', $msg, "\n";
  364.     close(DEBUG);
  365.   }
  366. }
  367.  
  368. sub down {
  369.   local($msg) = @_;
  370.   print STDERR $msg;
  371.   exit(0);
  372. }
  373.  
  374. sub kanji_jis {
  375.   local(*var) = @_;
  376.   $var = &'euc_jis($var);
  377. }
  378.  
  379. sub kanji_euc {
  380.   local(*var) = @_;
  381.   $var = &'jis_euc($var);
  382. }
  383.  
  384. sub jcode'convert {
  385.   local(*var, $code) = @_;
  386.   if ($code eq 'euc') {
  387.     $var = &'jis_euc($var);
  388.   } elsif ($code eq 'jis') {
  389.     $var = &'euc_jis($var);
  390.   }
  391. }
  392.  
  393. sub jcode'euc2jis {
  394.   local(*var) = @_;
  395.   $var = &'euc_jis($var);
  396. }
  397.  
  398. sub jcode'euc2sjis {
  399.   local(*var) = @_;
  400.   $var = &'euc_sjis($var);
  401. }
  402.  
  403. sub jcode'jis2euc {
  404.   local(*var) = @_;
  405.   $var = &'jis_euc($var);
  406. }
  407.  
  408. sub jcode'jis2sjis {
  409.   local(*var) = @_;
  410.   $var = &'jis_sjis($var);
  411. }
  412.  
  413. sub jcode'sjis2euc {
  414.   local(*var) = @_;
  415.   $var = &'sjis_euc($var);
  416. }
  417.  
  418. sub jcode'sjis2jis {
  419.   local(*var) = @_;
  420.   $var = &'sjis_jis($var);
  421. }
  422.  
  423. __END__
  424. --><HTML><HEAD>
  425. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-2022-JP">
  426. <LINK REV="made" HREF="mailto:hasegawa@madoka.org">
  427. <TITLE>auto/yuurii.plm</TITLE></HEAD><BODY>
  428.  
  429. $B%*%s%i%$%s%I%-%e%a%s%H(B
  430.  
  431.  
  432. <HR><H3>$BL>A0(B</H3>
  433.  
  434. auto/yuurii.plm - pirc bot $B$f!<$j$#$N%W%i%0%$%s$rAH$_9~$`(B
  435.  
  436.  
  437. <HR><H3>$B@bL@(B</H3>
  438.  
  439. pirc bot $B$f!<$j$#$N%(%_%e%l!<%7%g%s$r9T$$!"(B
  440. $B$f!<$j$#MQ$N%W%i%0%$%s$r<B9T$G$-$k$h$&$K$7$^$9!#(B
  441. $B$f!<$j$#MQ$N!V(B.pluginrc$B!W$d%W%i%0%$%s$,A4$F$=$N$^$^MxMQ$G$-$^$9!#(B
  442. jcode.pl$B$KAjEv$9$k%k!<%A%s$r4^$s$G$$$k$N$G!"(Bjcode.pl$B$OI,MW$"$j$^$;$s!#(B
  443. $B>\$7$/$O(Bpirc bot $B$f!<$j$#$N%I%-%e%a%s%H$r;2>H$7$F2<$5$$!#(B
  444.  
  445.  
  446. <HR><H3>$B%W%m%Q%F%#(B</H3>
  447.  
  448. <DL>
  449. <DT>  auto.yuurii.cache $B%-%c%C%7%e%5%$%:(B
  450. </DT>
  451. <DD>    $BF1$8%a%C%;!<%8$r2?EY$bH/8@$7$J$$$h$&$K!"(B
  452.         $B$3$3$G;XDj$7$?Bg$-$5$N%-%c%C%7%e$r:n$j$^$9!#(B
  453.         $BH/8@$7$h$&$H$7$F$$$k%a%C%;!<%8$,%-%c%C%7%e$NCf$K$"$C$?>l9g$O(B
  454.         $B$=$N%a%C%;!<%8$rH/8@$7$^$;$s!#(B
  455.         $B$f!<$j$#$N(BCACHE$B$N@_Dj$HF1$8$G$9!#(B
  456. </DD>
  457. <DT>  auto.yuurii.pluginrc $B%U%!%$%kL>(B
  458. </DT>
  459. <DD>    $B%W%i%0%$%s$N@_Dj%U%!%$%k$r;XDj$7$^$9!#(B
  460.         $B$f!<$j$#$N(BPLUGINRC$B$N@_Dj$HF1$8$G$9!#(B
  461.         $B$f!<$j$#$G;HMQ$7$F$$$?!V(B.pluginrc$B!W$,$=$N$^$^MxMQ$G$-$^$9!#(B
  462. </DD>
  463. <DT>  auto.yuurii.plugindir* $B%G%#%l%/%H%jL>(B
  464. </DT>
  465. <DD>    $B%W%i%0%$%s$N$*$$$F$"$k%G%#%l%/%H%j$r;XDj$7$^$9!#(B
  466.         $B$f!<$j$#$N(BPLUGINDIR$B$N@_Dj$HF1$8$G$9!#(B
  467. </DD>
  468. <DT>  auto.yuurii.down $B%j%V!<%H4V3V(B
  469. </DT>
  470. <DD>    $B%a%b%j$NBgNL>CHq$rKI$0$?$a$K!"(B
  471.         $B$3$3$G;XDj$5$l$?;~4V$,7P2a$9$k$H:F5/F0$r9T$$$^$9!#(B
  472.         $B$f!<$j$#$N(BDOWN$B$N@_Dj$HF1$8$G$9!#(B
  473.         $B$?$@$78=:_$O:F5/F0$N5!G=$O$J$$$N$G!"$3$N%W%m%Q%F%#$O;HMQ$7$F$$$^$;$s!#(B
  474. </DD>
  475. <DT>  auto.yuurii.downmes $B%a%C%;!<%8(B
  476. </DT>
  477. <DD>    $B:F5/F0$r9T$&$H$-$K!"$3$3$G;XDj$7$?%a%C%;!<%8$G(BIRC$B$r=*N;$7$^$9!#(B
  478.         $B$f!<$j$#$N(BDOWNMES$B$N@_Dj$HF1$8$G$9!#(B
  479.         $B$?$@$78=:_$O:F5/F0$N5!G=$O$J$$$N$G!"(B
  480.         $B$3$N%W%m%Q%F%#$O;HMQ$7$F$$$^$;$s!#(B
  481. </DD>
  482. <DT>  auto.yuurii.timer $B%+%&%s%H(B
  483. </DT>
  484. <DD>    1$BIC4V$K(B1$B2s%+%&%s%H$9$k%A%c%s%M%k%?%$%^$N=i4|CM$G$9!#(B
  485.         $B$f!<$j$#$N(BTIMER$B$N@_Dj$HF1$8$G$9!#(B
  486.         $B%?%$%^$NCM$,(B0$B$h$jBg$-$1$l$P!"(B1$BIC$K(B1$B$:$D8:>/$7!"(B
  487.         0$B$h$j>/$5$1$l$P!"(B1$BIC$K(B1$B$:$DA}2C$7$^$9!#(B
  488. </DD>
  489. <DT>  auto.yuurii.usetimer $B%?%$%^4V3V(B
  490. </DT>
  491. <DD>    $B;XDj$7$?IC?t$K(B1$B2s$N3d9g$G%W%i%0%$%s$r<B9T$7$^$9!#(B
  492.         $B$f!<$j$#$N(BUSETIMER$B$N@_Dj$H$[$\F1$8$G$9$,!"(B
  493.         yes$B$d(Bno$B$NBe$o$j$K(B1$B$d(B0$B$r;XDj$7$F$/$@$5$$!#(B
  494. </DD>
  495. <DT>  auto.yuurii.mode $B%U%!%$%k%b!<%I(B
  496. </DT>
  497. <DD>    $B%W%i%0%$%s$NCf$G:n@.$9$k%U%!%$%k$N%U%!%$%k%b!<%I$r;XDj$7$^$9!#(B
  498.         $B$f!<$j$#$G$N%G%U%)%k%H$O(B600$B$G$9!#(B
  499. </DD>
  500. <DT>  auto.yuurii.header $B$X%C%@(B
  501. </DT>
  502. <DD>    $B%G%P%C%0$N=PNO$K$D$1$k;~9o$N%U%)!<%^%C%H$r;XDj$7$^$9!#(B
  503.         $BJ8;zNsCf$K(B%$B$G;O$^$kJ8;zNs$,4^$^$l$F$$$k$H!"(B
  504.         $BBP1~$9$k$b$N$K$*$-$+$o$j$^$9!#(B
  505.         $B$f!<$j$#$G$N%G%U%)%k%H$O(B%H:%M:%S$B$G$9!#(B
  506. </DD>
  507. <DT>  auto.yuurii.debug $B%U%!%$%kL>(B
  508. </DT>
  509. <DD>    $B%W%i%0%$%s$NCf$G%G%P%C%0%k!<%A%s$r<B9T$7$?$H$-$K!"(B
  510.         $B$3$3$G;XDj$7$?%U%!%$%k$K=PNO$7$^$9!#(B
  511.         $BJ8;zNsCf$K(B%$B$G;O$^$kJ8;zNs$,4^$^$l$F$$$k$H!"(B
  512.         $BBP1~$9$k$b$N$K$*$-$+$o$j$^$9!#(B
  513.         $B$f!<$j$#$G$N%G%U%)%k%H$O(Blog%m%d$B$G$9!#(B
  514. </DD>
  515. </DL>
  516.  
  517.  
  518. <HR><H3>$B@_DjNc(B</H3>
  519.  
  520. <PRE>
  521. + auto/yuurii.plm
  522. auto.yuurii.cache: 50
  523. auto.yuurii.pluginrc: .pluginrc
  524. auto.yuurii.down: 48
  525. auto.yuurii.downmes: auto down
  526. auto.yuurii.timer: 2000
  527. auto.yuurii.usetimer: 0
  528. auto.yuurii.mode: 600
  529. auto.yuurii.header: %H:%M:%S
  530. auto.yuurii.debug: log%m%d
  531. </PRE>
  532.  
  533. $B$f!<$j$#$N%G%U%)%k%H$HF1$8@_Dj$G$9!#(B
  534. $B$?$@$7:F5/F0$O$7$J$$$N$G!V(Bauto.yuurii.down$B!W$H(B
  535. $B!V(Bauto.yuurii.downmes$B!W$N@_Dj$OL58z$G$9!#(B
  536.  
  537. <PRE>
  538. + auto/yuurii.plm
  539. auto.yuurii.cache: 0
  540. auto.yuurii.pluginrc: yuurii.conf
  541. auto.yuurii.usetimer: 1
  542. </PRE>
  543.  
  544. $B%-%c%C%7%e$r;H$o$J$$$h$&$K$7$F!"(B1$BIC4V$K(B1$B2s%W%i%0%$%s$r<B9T$7$^$9!#(B
  545. $B$^$?!"!V(B.pluginrc$B!W$NBe$o$j$K!V(Byuurii.conf$B!W$r;H$$$^$9!#(B
  546.  
  547. </BODY></HTML>
  548.