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