All pastes #250537 Raw Edit

Miscellany

public text v1 · immutable
#250537 ·published 2006-11-17 01:48 UTC
rendered paste body
dialog hamLIST { 
  title "HamLIST Blacklist Script" 
  size -1 -1 294 215 
  option dbu 
  list 1, 20 32 238 90, size 
  box "Hostmasks:", 2, 11 17 259 124 
  button "Remove", 3, 98 124 37 12 
  button "Update", 4, 60 124 37 12 
  edit "", 5, 20 152 238 10 
  button "Add", 6, 22 124 37 12 
  box "Add Hostmask:", 7, 11 143 260 24 
  text "HamLIST Blacklist Script", 8, 15 4 121 12 
  button "OK", 9, 43 179 37 12, ok 
  button "Cancel", 10, 81 179 37 12, cancel 
} 

on *:DIALOG:HamLIST:sclick:6:{ 
  set %hlist.hmask $did(HamLIST,5).text 
  write HamLIST.txt %hlist.hmask 
  did -a HamLIST 1 %hlist.hmask 
  scanchannels 
} 

on *:DIALOG:HamLIST:sclick:3:{ 
  set %hlist.remove $did(HamLIST,1,1).sel 
  write -ds $+ $did(HamLIST,1,1).seltext HamLIST.txt 
  did -d HamLIST 1 %hlist.remove 
} 

on *:DIALOG:HamLIST:sclick:4:{ 
  set %hlist.update $did(HamLIST,5).text 
  write -ds $+ $did(HamLIST,1,1).seltext HamLIST.txt 
  write HamLIST.txt %hlist.update 
  did -o $did(HamLIST,1,1).sel %hlist.update 
} 

alias hamlist { 
  dialog -ma hamlist hamlist 
} 

on *:join:#:{ 
  if ( $nick == $me ) { 
    scanchannel $chan 
  } 
  else { 
    docheck $nick $chan 
  } 
} 

alias docheck { 
  var %hlist.read2 1 
  while (%hlist.read2 <= $lines(hamlist.txt)) { 
    if ( $mask($read(hamlist.txt,%hlist.read2),5) iswm $address($$1,5) ) { 
      mode $chan +b $read(hamlist.txt,%hlist.read2) 
      inc %kicks 1 
      kick $2 $$1 You have been HamLISTED) ( $+ %kicks dudes kicked 
    } 
    inc %hlist.read2 1 
  } 
} 
menu channel { 
  HamLIST:/HamLIST 
} 
menu status { 
  HamLIST:/HamLIST 
} 
menu query { 
  HamLIST:/HamLIST 
} 
menu menubar { 
  HamLIST:/HamLIST 
} 

menu nicklist { 
  HamLIST 
  .Add Address 
  ..$+ $address($$1,1) $+ :/hamlist | /set %hlist.hmask $address($$1,1) | /did -a HamLIST 5 %hlist.hmask 
  ..$+ $address($$1,2) $+ :/hamlist | /set %hlist.hmask $address($$1,2) | /did -a HamLIST 5 %hlist.hmask 
  ..$+ $address($$1,3) $+ :/hamlist | /set %hlist.hmask $address($$1,3) | /did -a HamLIST 5 %hlist.hmask 
  ..$+ $address($$1,4) $+ :/hamlist | /set %hlist.hmask $address($$1,4) | /did -a HamLIST 5 %hlist.hmask 
  ..$+ $address($$1,5) $+ :/hamlist | /set %hlist.hmask $address($$1,5) | /did -a HamLIST 5 %hlist.hmask 
} 

on *:DIALOG:hamLIST:init:0:{ 
  var %hlist.read 1 
  while (%hlist.read <= $lines(hamlist.txt)) { 
    did -a hamLIST 1 $read(hamlist.txt,%hlist.read) 
    inc %hlist.read 1 
  } 
} 

on *:text:*:#:{ 
  docheck $nick 
} 
on *:action:*:#:{ 
  docheck $nick 
} 
on *:mode:#:{ 
  docheck $nick 
} 

alias scanchannels { 
  var %sc 1 
  while (%sc <= $chan(0)) { 
    var %sn 1 
    while (%sn <= $nick($chan(%sc),0)) { 
      var %hlist.read2 1 
      while (%hlist.read2 <= $lines(hamlist.txt)) { 
        if ( $mask($read(hamlist.txt,%hlist.read2),5) iswm $address($nick($chan(%sc),%sn),5) ) { 
          mode $chan(%sc) +b $read(hamlist.txt,%hlist.read2) 
          inc %kicks 1 
          kick $chan(%sc) $nick($chan(%sc),%sn) You have been HamLISTED) ( $+ %kicks dudes kicked 
        } 
        inc %hlist.read2 1 
      } 
      inc %sn 1 
    } 
    inc %sc 1 
  } 
} 

alias scanchannel { 
  var %sn 1 
  while (%sn <= $nick($1,0)) { 
    var %hlist.read2 1 
    while (%hlist.read2 <= $lines(hamlist.txt)) { 
      if ( $mask($read(hamlist.txt,%hlist.read2),5) iswm $address($nick($1,%sn),5) ) { 
        mode $1 +b $read(hamlist.txt,%hlist.read2) 
        inc %kicks 1 
        kick $1 $nick($1,%sn) You have been HamLISTED) ( $+ %kicks dudes kicked 
      } 
      inc %hlist.read2 1 
    } 
    inc %sn 1 
  } 
}