All pastes #838052 Raw Edit

SpamFilter manager

public text v1 · immutable
#838052 ·published 2007-12-30 02:24 UTC
rendered paste body
dialog sfm {
  title "Spamfilter Manager"
  size -1 -1 333 231
  option dbu
  box "Filters", 1, 2 2 330 106
  list 2, 4 8 325 80, size vsbar
  button "Populate List", 3, 5 88 323 8
  box "Type", 4, 2 109 60 110
  edit "", 5, 1 220 330 10, disable center
  box "Action", 6, 62 109 60 110
  check "Channel Message", 7, 5 117 55 10
  check "Private Message", 8, 5 127 55 10
  check "Private Notice", 9, 5 137 55 10
  check "Channel Notice", 10, 5 147 55 10
  check "Part Message", 11, 5 157 55 10
  check "Quit Message", 12, 5 167 55 10
  check "Away", 13, 5 177 55 10
  check "User", 14, 5 187 55 10
  check "DCC", 15, 5 197 55 10
  check "Topic", 16, 5 207 55 10
  radio "Block", 17, 65 117 55 10
  radio "Temp Shun", 18, 65 127 55 10
  radio "Shun", 19, 65 137 55 10
  radio "Shun", 20, 65 147 55 10
  radio "K:Line", 21, 65 157 55 10
  radio "G:Line", 22, 65 167 55 10
  radio "Z:Line", 23, 65 177 55 10
  radio "GZ:Line", 24, 65 187 55 10
  radio "Kill", 25, 65 197 55 10
  radio "DCC Block", 26, 65 207 55 10
  box "Add && Edit", 27, 122 109 115 110
  box "Details", 28, 238 109 94 36
  text "Reason:", 29, 123 118 20 8
  edit "", 30, 145 117 90 10, autohs
  text "Duration:", 31, 123 128 23 8
  edit "", 32, 145 127 90 10, autohs
  text "RegExp:", 33, 123 148 21 8
  edit "", 34, 145 147 90 10, autohs
  button "Add", 35, 124 184 110 10
  button "Edit", 36, 124 195 110 10
  button "Remove", 37, 124 206 110 10
  text "Added by _________", 38, 240 118 90 8
  text "Added on _________", 39, 240 130 90 8
  button "Done", 40, 293 208 37 12, ok
  button "Search List", 41, 5 98 323 8
  button "Undo Remove", 42, 238 208 37 12
}
menu * {
  .SpamFilterManager:/dialog -md sfm sfm
}
on *:DIALOG:sfm:sclick:*: {
  if ($did == 3) { if ($input(Are you sure you wish to re-populate the Filter List?,y,SpamFilter Manager)) { .did -r $dname 2 | $iif($hget(sfm,1).data,.hfree sfm) | .did -ra $dname 5 Populating list... | .enable #SFM | .spamfilter } | .dialog -v $dname }
  if ($did == 2) {
    .popdata
  }
  if ($did == 35) {
    if ($did($dname,17).state == 1) { var %act = block - }
    if ($did($dname,18).state == 1) { var %act = tempshun - }
    if ($did($dname,19).state == 1) { var %act = shun $iif($did($dname,32),$v1,-) }
    if ($did($dname,20).state == 1) { var %act = viruschan - }
    if ($did($dname,21).state == 1) { var %act = kline $iif($did($dname,32),$v1,-) }
    if ($did($dname,22).state == 1) { var %act = gline $iif($did($dname,32),$v1,-) }
    if ($did($dname,23).state == 1) { var %act = zline $iif($did($dname,32),$v1,-) }
    if ($did($dname,24).state == 1) { var %act = gzline $iif($did($dname,32),$v1,-) }
    if ($did($dname,25).state == 1) { var %act = kill - }
    if ($did($dname,26).state == 1) { var %act = dccblock - }
    spamfilter add $+($iif($did($dname,7).state == 1,c),$iif($did($dname,8).state == 1,p),$iif($did($dname,9).state == 1,n),$iif($did($dname,10).state == 1,N) $&
      ,$iif($did($dname,11).state == 1,P),$iif($did($dname,12).state == 1,q),$iif($did($dname,13).state == 1,a),$iif($did($dname,14).state == 1,u) $&
      ,$iif($did($dname,15).state == 1,d),$iif($did($dname,16).state == 1,t)) %act $replace($did($dname,30),$chr(32),_) $did($dname,34)
    .sis -r $dname 5 New Filter added!
  }
  if ($did == 36) {
    .tokenize 32 $did($dname,2).seltext
    if ($1 == **) { halt }
    .did -ra $dname 5 Confirming Edit...
    if (!$input(Are you sure you wish to edit the following regex: $crlf $8-,y,SpamFilter Manager)) { .did -ra $dname 5 Edit canceled. | .dialog -v $dname | halt }
    .dialog -v $dname
    .did -ra $dname 5 Editing RegExp: $8-
    if ($did($dname,17).state == 1) { var %act = block - }
    if ($did($dname,18).state == 1) { var %act = tempshun - }
    if ($did($dname,19).state == 1) { var %act = shun $iif($did($dname,32),$v1,-) }
    if ($did($dname,20).state == 1) { var %act = viruschan - }
    if ($did($dname,21).state == 1) { var %act = kline $iif($did($dname,32),$v1,-) }
    if ($did($dname,22).state == 1) { var %act = gline $iif($did($dname,32),$v1,-) }
    if ($did($dname,23).state == 1) { var %act = zline $iif($did($dname,32),$v1,-) }
    if ($did($dname,24).state == 1) { var %act = gzline $iif($did($dname,32),$v1,-) }
    if ($did($dname,25).state == 1) { var %act = kill - }
    if ($did($dname,26).state == 1) { var %act = dccblock - }
    .did -ra $dname 5 Adding new format...
    spamfilter add $+($iif($did($dname,7).state == 1,c),$iif($did($dname,8).state == 1,p),$iif($did($dname,9).state == 1,n),$iif($did($dname,10).state == 1,N) $&
      ,$iif($did($dname,11).state == 1,P),$iif($did($dname,12).state == 1,q),$iif($did($dname,13).state == 1,a),$iif($did($dname,14).state == 1,u) $&
      ,$iif($did($dname,15).state == 1,d),$iif($did($dname,16).state == 1,t)) %act $replace($did($dname,30),$chr(32),_) $did($dname,34)
    .tokenize 32 $hget(sfm,$did($dname,2).sel)
    .did -ra $dname 5 Removing old format...
    spamfilter del $2 $3 $iif($4 != 0,$v1,-) $7 $9-
    .did -ra $dname 5 Edit Complete!
  }
  if ($did == 37) {
    .tokenize 32 $did($dname,2).seltext
    if ($1 == **) { halt }
    .did -ra $dname 5 Confirming Delete...
    if (!$input(Are you sure you wish to delete the following regex: $crlf $8-,y,SpamFilter Manager)) { .did -ra $dname 5 Delete canceled. | .dialog -v $dname | halt }
    .dialog -v $dname
    .did -ra $dname 5 Deleting RegExp: $8-
    .did -o $dname 2 $did($dname,2).sel ** Deleted **
    if ($did($dname,17).state == 1) { var %act = block - }
    if ($did($dname,18).state == 1) { var %act = tempshun - }
    if ($did($dname,19).state == 1) { var %act = shun $iif($did($dname,32),$v1,-) }
    if ($did($dname,20).state == 1) { var %act = viruschan - }
    if ($did($dname,21).state == 1) { var %act = kline $iif($did($dname,32),$v1,-) }
    if ($did($dname,22).state == 1) { var %act = gline $iif($did($dname,32),$v1,-) }
    if ($did($dname,23).state == 1) { var %act = zline $iif($did($dname,32),$v1,-) }
    if ($did($dname,24).state == 1) { var %act = gzline $iif($did($dname,32),$v1,-) }
    if ($did($dname,25).state == 1) { var %act = kill - }
    if ($did($dname,26).state == 1) { var %act = dccblock - }
    spamfilter del $+($iif($did($dname,7).state == 1,c),$iif($did($dname,8).state == 1,p),$iif($did($dname,9).state == 1,n),$iif($did($dname,10).state == 1,N) $&
      ,$iif($did($dname,11).state == 1,P),$iif($did($dname,12).state == 1,q),$iif($did($dname,13).state == 1,a),$iif($did($dname,14).state == 1,u) $&
      ,$iif($did($dname,15).state == 1,d),$iif($did($dname,16).state == 1,t)) %act $replace($did($dname,30),$chr(32),_) $did($dname,34)
  }
  if ($did == 41) {
    var %str = $$?="Enter a search string (Will search reason and filter!)"
    if (!%str) { .dialog -v $dname | halt }
    .dialog -v $dname
    .did -ra $dname 5 Searching...
    var %match = $hfind(sfm,%str,1,w).data
    if (!%match) { .did -ra $dname 5 Search returned no results... | halt }
    .did -c $dname 2 %match
    .popdata
    .did -ra $dname 5 Search finished!
  }
  if ($did == 42) {
    var %p = $did($dname,2).sel
    if ($did($dname,2).seltext != ** Deleted **) { halt }
    if (!$input(Are you sure you wish to restore the following regex: $crlf $gettok($hget(sfm,%p),9-,32),y,SpamFilter Manager)) { .did -ra $dname 5 Restore canceled. | .dialog -v $dname | halt }
    .dialog -v $dname
    .did -o $dname 2 %p $gettok($hget(sfm,$did($dname,2).sel),2-,32)
    .tokenize 32 $hget(sfm,%p)
    spamfilter add $2 $3 $iif($4 != 0,$v1,-) $7 $9-
    .did -ra $dname 5 RegExp Restored!
  }
}
alias popdata {
  if (!$dialog(sfm)) { halt }
  .tokenize 32 $did(sfm,2).seltext
  .did -u sfm 7-16,17-26
  if ($1 == **) { halt }
  if (c isincs $1) { .did -c sfm 7 }
  if (p isincs $1) { .did -c sfm 8 }
  if (n isincs $1) { .did -c sfm 9 }
  if (N isincs $1) { .did -c sfm 10 }
  if (P isincs $1) { .did -c sfm 11 }
  if (q isincs $1) { .did -c sfm 12 }
  if (a isincs $1) { .did -c sfm 13 }
  if (u isincs $1) { .did -c sfm 14 }
  if (d isincs $1) { .did -c sfm 15 }
  if (t isincs $1) { .did -c sfm 16 }

  if ($2 == block) { .did -c sfm 17 }
  if ($2 == tempshun) { .did -c sfm 18 }
  if ($2 == shun) { .did -c sfm 19 | .did -ra sfm 32 $3 }
  if ($2 == viruschan) { .did -c $sfm 20 }
  if ($2 == kline) { .did -c sfm 21 | .did -ra sfm 32 $3 }
  if ($2 == gline) { .did -c sfm 22 | .did -ra sfm 32 $3 }
  if ($2 == zline) { .did -c sfm 23 | .did -ra sfm 32 $3 }
  if ($2 == gzline) { .did -c sfm 24 | .did -ra sfm 32 $3 }
  if ($2 == kill) { .did -c sfm 25 }
  if ($2 == dccblock) { .did -c sfm 26 }

  .did -ra sfm 30 $replace($6,_,$chr(32))
  .did -ra sfm 32 $iif($3 != 0,$v1)
  .did -ra sfm 34 $8-
  .did -ra sfm 38 Added by $gettok($7,1,33)
  .did -ra sfm 39 Added on $asctime($calc($ctime - $4),dd/mm/yy HH:nn:ss)
}
#SFM off
raw 229:*: { .did -a sfm 2 $3- | .did -ra sfm 5 Populating with $9- | .hadd -m sfm $calc($hget(sfm,0).data + 1) $2- | halt }
raw 219:*: { .did -ra sfm 5 Done populating Filter List - $hget(sfm,0).data Entries added | .disable #SFM | halt }
#SFM end