home *** CD-ROM | disk | FTP | other *** search
/ ftp.madoka.org / 2014.12.ftp.madoka.org.tar / ftp.madoka.org / pub / plum / 2.x / plum2_15_2.lzh / module / user / ignore.plm
Text File  |  1997-12-13  |  3KB  |  111 lines

  1. # <!-- -*- perl -*-
  2. # $Id: ignore.plm,v 2.2 1997/12/13 13:14:08 hasegawa Exp $
  3. # copyright (c)1997 pupu_j <hasegawa@agusa.nuie.nagoya-u.ac.jp>
  4.  
  5. package user_ignore;
  6.  
  7. $MASK = &'list('privmsg', 'notice');
  8.  
  9. $_ = 'user_ignore';
  10.  
  11. sub ss_privmsg {
  12.   local($serverno, $prefix, $cmd, $chan, $msg) = @_;
  13.   local($userno, $regex);
  14.   $userno = $'userno[$serverno];
  15.   if (&maskcommand($userno, $cmd)) {
  16.     foreach $not (&'property($userno, 'not')) {
  17.       $regex = &'regex($not);
  18.       return ($prefix, $cmd, $chan, $msg) if $prefix =~ /$regex/i;
  19.     }
  20.     foreach $user (&'property($userno, 'user')) {
  21.       $regex = &'regex($user);
  22.       return () if $prefix =~ /$regex/i;
  23.     }
  24.   }
  25.   return ($prefix, $cmd, $chan, $msg);
  26. }
  27.  
  28. sub ss_notice {
  29.   local($serverno, $prefix, $cmd, $chan, $msg) = @_;
  30.   local($userno, $regex);
  31.   $userno = $'userno[$serverno];
  32.   if (&maskcommand($userno, $cmd)) {
  33.     foreach $not (&'property($userno, 'not')) {
  34.       $regex = &'regex($not);
  35.       return ($prefix, $cmd, $chan, $msg) if $prefix =~ /$regex/i;
  36.     }
  37.     foreach $user (&'property($userno, 'user')) {
  38.       $regex = &'regex($user);
  39.       return () if $prefix =~ /$regex/i;
  40.     }
  41.   }
  42.   return ($prefix, $cmd, $chan, $msg);
  43. }
  44.  
  45. sub maskcommand {
  46.   local($userno, $cmd) = @_;
  47.   local($mask);
  48.   $mask = &'property($userno, 'mask');
  49.   if (defined($mask)) {
  50.     $mask = '';
  51.     foreach $list (&'property($userno, 'mask')) {
  52.       $mask = &'add($mask, split(/\,/, "\L$list\U"));
  53.     }
  54.   } else {
  55.     $mask = $MASK;
  56.   }
  57.   return &'exist($mask, "\L$cmd\E");
  58. }
  59.  
  60. __END__
  61. --><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
  62. <HTML><HEAD><TITLE> user/ignore.plm </TITLE></HEAD><BODY>
  63.  
  64. $B%*%s%i%$%s%I%-%e%a%s%H(B
  65.  
  66.  
  67. <HR><H3> $BL>A0(B </H3>
  68.  
  69. user/ignore.plm - $B;XDj$7$?%f!<%6$NH/8@$rL5;k$9$k(B
  70.  
  71.  
  72. <HR><H3> $B@bL@(B </H3>
  73.  
  74. $B;XDj$7$?%f!<%6$NH/8@$r%/%i%$%"%s%H$KAw$i$J$$$h$&$K$7$^$9!#(B
  75.  
  76.  
  77. <HR><H3> $B%W%m%Q%F%#(B </H3>
  78.  
  79. <DL>
  80. <DT> user.ignore.user* $B%f!<%6%^%9%/(B
  81. <DD>    $B$3$3$G;XDj$5$l$?%f!<%6$NH/8@$OL5;k$7!"(B
  82.         $B%/%i%$%"%s%H$KAw$i$J$$$h$&$K$7$^$9!#(B
  83. <DT> user.ignore.not* $B%f!<%6%^%9%/(B
  84. <DD>    $B$3$3$G;XDj$5$l$?%f!<%6$NH/8@$OL5;k$7$^$;$s!#(B
  85.         $B$3$N;XDj$O!V(Buser.ignore.user$B!W$h$jM%@h$5$l$^$9!#(B
  86. <DT> user.ignore.mask* ({privmsg|notice})
  87. <DD>    $BL5;k$9$k%a%C%;!<%8$N<oN`$r;XDj$7$^$9!#(B
  88.         $B%G%U%)%k%H$G$O(BPRIVMSG$B$H(BNOTICE$B$NN>J}$rL5;k$7$^$9!#(B
  89. </DL>
  90.  
  91.  
  92. <HR><H3> $B@_DjNc(B </H3>
  93.  
  94. <PRE>
  95. + user/ignore.plm
  96. user.ignore.user: *!*@*
  97. user.ignore.not: *!*@*.jp
  98. </PRE>
  99.  
  100. *!*@*.jp$B$K%^%C%A$7$J$$?M$NH/8@$r$9$Y$FL5;k$7$^$9!#(B
  101.  
  102. <PRE>
  103. + user/ignore.plm
  104. user.ignore.user: dummy!*@*
  105. user.ignore.mask: privmsg
  106. </PRE>
  107.  
  108. dummy$B$H$$$&%K%C%/%M!<%`$N%f!<%6$N(BPRIVMSG$B$G$NH/8@$rL5;k$7$^$9!#(B
  109.  
  110. </BODY></HTML>
  111.