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 / user / ignore.plm < prev   
Text File  |  1999-03-24  |  3KB  |  132 lines

  1. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><!-- $_ if 0; # -*- perl -*-
  2. # $Id: ignore.plm,v 2.11 1999/01/28 12:19:48 hasegawa Exp $
  3. # copyright (c)1997-1999 Yoshinori Hasegawa <hasegawa@madoka.org>
  4.  
  5. package user_ignore;
  6.  
  7. $COMMAND = &'list('privmsg', 'notice');
  8.  
  9. $_ = 'user_ignore';
  10.  
  11. sub ss_privmsg {
  12.   local($serverno, $prefix, $cmd, @params) = @_;
  13.   local($userno, $regex);
  14.   $userno = $'userno[$serverno];
  15.   if (&maskcommand($userno, $cmd)) {
  16.     if (&check_mask($userno, $prefix, $params[0])) {
  17.       return ();
  18.     }
  19.   }
  20.   return ($prefix, $cmd, @params);
  21. }
  22.  
  23. sub ss_notice {
  24.   local($serverno, $prefix, $cmd, @params) = @_;
  25.   local($userno, $regex);
  26.   $userno = $'userno[$serverno];
  27.   if (&maskcommand($userno, $cmd)) {
  28.     if (&check_mask($userno, $prefix, $params[0])) {
  29.       return ();
  30.     }
  31.   }
  32.   return ($prefix, $cmd, @params);
  33. }
  34.  
  35. sub check_mask {
  36.   local($userno, $prefix, $chan) = @_;
  37.   local($user, $chlist, $list);
  38.   foreach $mask (&'property($userno, 'mask')) {
  39.     ($user, $chlist) = split(/\s+/, $mask);
  40.     $list = '';
  41.     foreach $vchan (split(/\,/, $chlist || '')) {
  42.       $list = &'add($list, &'real($vchan));
  43.     }
  44.     if (&'channel($chan)) {
  45.       next unless (!$list || &'exist($list, $chan));
  46.     } else {
  47.       next unless (!$list || &'exist($list, '*'));
  48.     }
  49.     if ($user =~ /^\-/) {
  50.       $regex = &'regex(substr($user, 1));
  51.       return 0 if $prefix =~ /$regex/i;
  52.     }
  53.     if ($user =~ /^\+/) {
  54.       $regex = &'regex(substr($user, 1));
  55.     } else {
  56.       $regex = &'regex($user);
  57.     }
  58.     return 1 if $prefix =~ /$regex/i;
  59.   }
  60.   return 0;
  61. }
  62.  
  63. sub maskcommand {
  64.   local($userno, $cmd) = @_;
  65.   local($mask);
  66.   $mask = &'property($userno, 'command');
  67.   if (defined($mask)) {
  68.     $mask = '';
  69.     foreach $list (&'property($userno, 'command')) {
  70.       $mask = &'add($mask, split(/\,/, $list));
  71.     }
  72.   } else {
  73.     $mask = $COMMAND;
  74.   }
  75.   return &'exist($mask, $cmd);
  76. }
  77.  
  78. __END__
  79. --><HTML><HEAD>
  80. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-2022-JP">
  81. <LINK REV="made" HREF="mailto:hasegawa@madoka.org">
  82. <TITLE>user/ignore.plm</TITLE></HEAD><BODY>
  83.  
  84. $B%*%s%i%$%s%I%-%e%a%s%H(B
  85.  
  86.  
  87. <HR><H3>$BL>A0(B</H3>
  88.  
  89. user/ignore.plm - $B;XDj$7$?%f!<%6$NH/8@$rL5;k$9$k(B
  90.  
  91.  
  92. <HR><H3>$B@bL@(B</H3>
  93.  
  94. $B;XDj$7$?%f!<%6$NH/8@$r%/%i%$%"%s%H$KAw$i$J$$$h$&$K$7$^$9!#(B
  95.  
  96.  
  97. <HR><H3>$B%W%m%Q%F%#(B</H3>
  98.  
  99. <DL>
  100. <DT>  user.ignore.mask* $B%f!<%6%^%9%/(B [($B%A%c%s%M%kL>(B)]
  101. </DT>
  102. <DD>    $BH/8@$7$??M$,$3$3$G;XDj$7$?$b$N$K%^%C%A$7$?>l9g!"(B
  103.         $B$=$N?M$NH/8@$rL5;k$7!"%/%i%$%"%s%H$KAw$i$J$$$h$&$K$7$^$9!#(B
  104. </DD>
  105. <DT>  user.ignore.command* ({privmsg|notice})
  106. </DT>
  107. <DD>    $BL5;k$9$k%a%C%;!<%8$N<oN`$r;XDj$7$^$9!#(B
  108.         $B%G%U%)%k%H$G$O(BPRIVMSG$B$H(BNOTICE$B$NN>J}$rL5;k$7$^$9!#(B
  109. </DD>
  110. </DL>
  111.  
  112.  
  113. <HR><H3>$B@_DjNc(B</H3>
  114.  
  115. <PRE>
  116. + user/ignore.plm
  117. user.ignore.mask: -*!*@*.jp
  118. user.ignore.mask: *!*@*
  119. </PRE>
  120.  
  121. $B!V(B*!*@*.jp$B!W$K%^%C%A$7$J$$?M$NH/8@$r$9$Y$FL5;k$7$^$9!#(B
  122.  
  123. <PRE>
  124. + user/ignore.plm
  125. user.ignore.mask: dummy!*@*
  126. user.ignore.command: privmsg
  127. </PRE>
  128.  
  129. $B!V(Bdummy$B!W$H$$$&%K%C%/%M!<%`$N%f!<%6$N!"(BPRIVMSG$B$G$NH/8@$rL5;k$7$^$9!#(B
  130.  
  131. </BODY></HTML>
  132.