home *** CD-ROM | disk | FTP | other *** search
/ ftp.madoka.org / 2014.12.ftp.madoka.org.tar / ftp.madoka.org / pub / plum / 1.x / plum11.lzh / plum11 / taillog.plm < prev    next >
Text File  |  1997-08-28  |  2KB  |  59 lines

  1. package taillog;
  2.  
  3. $LOGHEADER = '%h:%m';
  4. $TAILLOG = 50;
  5.  
  6. $_ = 'taillog';
  7.  
  8. sub client_open {
  9.   local($clientno) = @_;
  10.   foreach $log (&'array($taillog[$'userno[$clientno]])) {
  11.     &'c_print($clientno, '', 'NOTICE', $'nick[$clientno], $log);
  12.   }
  13. }
  14.  
  15. sub sp_privmsg {
  16.   local($serverno, $prefix, $cmd, $chan, $msg) = @_;
  17.   local($vchan) = &'vchan($chan);
  18.   &makelog($'userno[$serverno], ">$vchan:$'nick[$serverno]< $msg");
  19.   return ($prefix, $cmd, $chan, $msg);
  20. }
  21.  
  22. sub ss_privmsg {
  23.   local($serverno, $prefix, $cmd, $chan, $msg) = @_;
  24.   local($nick, $vchan);
  25.   $nick = &'prefix($prefix);
  26.   if ($chan =~ /^[\#\&]/) {
  27.     $vchan = &'vchan($chan);
  28.     if (&'exist($'nameslist{$'userno[$serverno], $chan}, $nick, "\+$nick", "\@$nick")) {
  29.       &makelog($'userno[$serverno], "<$vchan:$nick> $msg");
  30.     } else {
  31.       &makelog($'userno[$serverno], "($vchan:$nick) $msg");
  32.     }
  33.   } else {
  34.     &makelog($'userno[$serverno], "=$nick= $msg");
  35.   }
  36.   return ($prefix, $cmd, $chan, $msg);
  37. }
  38.  
  39. sub makelog {
  40.   local($userno, $log) = @_;
  41.   local(@time, @log, $header, $line, $tmp);
  42.   @time = localtime(time);
  43.   $header = &'property($userno, 'logheader') || $LOGHEADER;
  44.   $tmp = sprintf('%02d', $time[2]);
  45.   $header =~ s/\%h/$tmp/g;
  46.   $tmp = sprintf('%02d', $time[1]);
  47.   $header =~ s/\%m/$tmp/g;
  48.   $tmp = sprintf('%02d', $time[0]);
  49.   $header =~ s/\%s/$tmp/g;
  50.   @log = &'array($taillog[$userno]);
  51.   push(@log, "$header $log");
  52.   $line = &'property($userno, 'taillog') || $TAILLOG;
  53.   while (scalar(@log) > $line) {
  54.     shift(@log);
  55.   }
  56.   $taillog[$userno] = &'list(@log);
  57. }
  58.  
  59.