home *** CD-ROM | disk | FTP | other *** search
/ ftp.madoka.org / 2014.12.ftp.madoka.org.tar / ftp.madoka.org / pub / plum / 1.x / plum10b9.lzh / plum10b9 / dailylog.plm < prev    next >
Text File  |  1997-06-30  |  4KB  |  135 lines

  1. package dailylog;
  2.  
  3. $DAILYLOG = 'log%m%d';
  4. $LOGHEADER = '%h:%m';
  5.  
  6. $_ = 'dailylog';
  7.  
  8. sub ss_privmsg {
  9.   local($serverno, $prefix, $cmd, $chan, $msg) = @_;
  10.   local($nick, $vchan);
  11.   $nick = &'prefix($prefix);
  12.   if ($chan =~ /^[\#\&]/) {
  13.     $vchan = &'vchan($chan);
  14.     if (&'exist($'nameslist{$'userno[$serverno], $chan}, $nick, "\+$nick", "\@$nick")) {
  15.       &dailylog($'userno[$serverno], "<$vchan:$nick> $msg");
  16.     } else {
  17.       &dailylog($'userno[$serverno], "($vchan:$nick) $msg");
  18.     }
  19.   } else {
  20.     &dailylog($'userno[$serverno], "=$nick= $msg");
  21.   }
  22.   return ($prefix, $cmd, $chan, $msg);
  23. }
  24.  
  25. sub ss_join {
  26.   local($serverno, $prefix, $cmd, $chan) = @_;
  27.   local($nick, $vchan);
  28.   $nick = &'prefix($prefix);
  29.   $vchan = &'vchan($chan);
  30.   &dailylog($'userno[$serverno], "+ $nick ($prefix) to $vchan");
  31.   return ($prefix, $cmd, $chan);
  32. }
  33.  
  34. sub ss_part {
  35.   local($serverno, $prefix, $cmd, $chan) = @_;
  36.   local($nick, $vchan);
  37.   $nick = &'prefix($prefix);
  38.   $vchan = &'vchan($chan);
  39.   &dailylog($'userno[$serverno], "- $nick from $vchan");
  40.   return ($prefix, $cmd, $chan);
  41. }
  42.  
  43. sub ss_kick {
  44.   local($serverno, $prefix, $cmd, $chan, $whom, $msg) = @_;
  45.   local($nick, $vchan);
  46.   $nick = &'prefix($prefix);
  47.   $vchan = &'vchan($chan);
  48.   &dailylog($'userno[$serverno], "- $whom by $nick from $vchan ($msg)");
  49.   return ($prefix, $cmd, $chan, $whom, $msg);
  50. }
  51.  
  52. sub ss_invite {
  53.   local($serverno, $prefix, $cmd, $me, $chan) = @_;
  54.   local($nick, $vchan);
  55.   $nick = &'prefix($prefix);
  56.   $vchan = &'vchan($chan);
  57.   &dailylog($'userno[$serverno], "Invited by $nick: $vchan");
  58.   return ($prefix, $cmd, $me, $chan);
  59. }
  60.  
  61. sub ss_mode {
  62.   local($serverno, $prefix, $cmd, $chan, @modes) = @_;
  63.   local($nick, $vchan);
  64.   $nick = &'prefix($prefix);
  65.   $vchan = &'vchan($chan);
  66.   &dailylog($'userno[$serverno], "Mode by $nick: $vchan " . join(' ', @modes));
  67.   return ($prefix, $cmd, $chan, @modes);
  68. }
  69.  
  70. sub ss_nick {
  71.   local($serverno, $prefix, $cmd, $newnick) = @_;
  72.   local($nick) = &'prefix($prefix);
  73.   if ($nick eq $'nick[$serverno] || $newnick eq $'nick[$serverno]) {
  74.     &dailylog($'userno[$serverno], "My nick is changed ($nick -> $newnick)");
  75.   } else {
  76.     &dailylog($'userno[$serverno], "$nick -> $newnick");
  77.   }
  78.   return ($prefix, $cmd, $newnick);
  79. }
  80.  
  81. sub ss_quit {
  82.   local($serverno, $prefix, $cmd, $msg) = @_;
  83.   local($nick) = &'prefix($prefix);
  84.   &dailylog($'userno[$serverno], "! $nick ($msg)");
  85.   return ($prefix, $cmd, $msg);
  86. }
  87.  
  88. sub ss_topic {
  89.   local($serverno, $prefix, $cmd, $chan, $topic) = @_;
  90.   local($nick, $vchan);
  91.   $nick = &'prefix($prefix);
  92.   $vchan = &'vchan($chan);
  93.   &dailylog($'userno[$serverno], "Topic of channel $vchan by $nick: $topic");
  94.   return ($prefix, $cmd, $chan, $topic);
  95. }
  96.  
  97. sub sp_privmsg {
  98.   local($serverno, $prefix, $cmd, $chan, $msg) = @_;
  99.   local($vchan) = &'vchan($chan);
  100.   &dailylog($'userno[$serverno], ">$vchan:$'nick[$serverno]< $msg");
  101.   return ($prefix, $cmd, $chan, $msg);
  102. }
  103.  
  104. sub dailylog {
  105.   local($userno, $msg) = @_;
  106.   local($file, $header, $filemode, $tmp, @time);
  107.   $file = &'property($userno, 'dailylog');
  108.   $file = &'expand($file || $DAILYLOG);
  109.   @time = localtime(time);
  110.   $tmp = sprintf('%04d', $time[5] + 1900);
  111.   $file =~ s/\%y/$tmp/g;
  112.   $tmp = sprintf('%02d', $time[4] + 1);
  113.   $file =~ s/\%m/$tmp/g;
  114.   $tmp = sprintf('%02d', $time[3]);
  115.   $file =~ s/\%d/$tmp/g;
  116.   $header = &'property($userno, 'logheader') || $LOGHEADER;
  117.   $tmp = sprintf('%02d', $time[2]);
  118.   $header =~ s/\%h/$tmp/g;
  119.   $tmp = sprintf('%02d', $time[1]);
  120.   $header =~ s/\%m/$tmp/g;
  121.   $tmp = sprintf('%02d', $time[0]);
  122.   $header =~ s/\%s/$tmp/g;
  123.   if (!-f $file && open(TMP, ">$file")) {
  124.     close(TMP);
  125.     $filemode = oct(&'property($userno, 'filemode') || 0);
  126.     chmod(($filemode || (umask ^ 0666)) | 0200, $file);
  127.   }
  128.   if (open(DAILYLOG, ">>$file")) {
  129.     select((select(DAILYLOG), $| = 1)[0]);
  130.     print DAILYLOG $header, ' ', $msg, "\n";
  131.     close(DAILYLOG);
  132.   }
  133. }
  134.  
  135.