All pastes #752258 Raw Edit

Blacklist

public text v1 · immutable
#752258 ·published 2007-10-28 05:57 UTC
rendered paste body
dialog -l blist {
  title "Blacklist Manager"
  size -1 -1 324 144
  option dbu
  check "&Enable Blacklist", 1, 8 8 52 10
  list 2, 8 24 161 109, size extsel
  box "Blacklist Info", 3, 176 8 141 113
  text "Banmask:", 4, 184 20 25 8
  edit "", 5, 184 31 125 10, autohs
  text "Reason for Blacklist:", 6, 184 48 50 8
  edit "", 7, 184 60 125 10, autohs
  text "Date Added/Modified:", 8, 184 76 55 8
  edit "", 9, 184 88 125 10, read
  button "&New", 10, 184 104 37 12
  button "&Save", 11, 228 104 37 12
  button "&Delete", 12, 272 104 37 12
  check "Chec&k on Close", 13, 188 128 50 10
  button "&Close", 14, 244 128 37 12, ok
}
}

on *:DIALOG:blist:sclick:2: {
  did -e blist 10,12
  if ($did(blist,2,0).sel == 1) {
    did -e blist 5,7,9
    did -b blist 11
    set %blist.num $did(blist,2,1).sel
    did -ra blist 5 $ulist(*,blist,%blist.num)
    did -ra blist 7 $gettok($ulist(*,blist,%blist.num).info,6-,32)
    did -ra blist 9 $gettok($ulist(*,blist,%blist.num).info,1-5,32)
  }
  if ($did(blist,2,0).sel > 1) {
    did -rb blist 5,7,9
  }
}

on *:DIALOG:blist:edit:5,7: {
  did -ra blist 9 $asctime
  if ($did(blist,5).text == $null) || ($did(blist,7).text == $null) || (*!*@* !iswm $did(blist,5).text) || (*!*@* == $did(blist,5).text) did -b blist 11
  if ($did(blist,5).text != $null) && ($did(blist,7).text != $null) && (*!*@* iswm $did(blist,5).text) && (*!*@* != $did(blist,5).text) did -e blist 11
}

on *:DIALOG:blist:sclick:10: {
  unset %blist.num
  did -re blist 5,7,9
  did -b blist 11,12
  did -f blist 5
}

on *:DIALOG:blist:sclick:11: {
  if (%blist.num) .ruser blist $ulist(*,blist,%blist.num)
  .auser -a blist $gettok($did(blist,5).text,1,32) $asctime $did(blist,7).text
  did -r blist 2,5,7,9
  did -b blist 5,7,9,11,12
  did -c blist 13
  var %c 1
  while (%c <= $ulist(*,blist,0)) {
    did -a blist 2 $ulist(*,blist,%c)
    inc %c
  }
  did -f blist 14
}

on *:DIALOG:blist:sclick:12: {
  if ($did(blist,2,0).sel == 1) {
    .ruser blist $did(blist,5).text

    did -f blist 2
  }
  if ($did(blist,2,0).sel > 1) {
    var %b 1
    while ($did(blist,2,%b).sel) {
      .ruser blist $did(blist,2,$did(blist,2,%b).sel).text
      inc %b
    }
  }
  did -r blist 2,5,7,9
  did -b blist 5,7,9,11,12
  var %c 1
  while ($ulist(*,blist,%c)) {
    did -a blist 2 $ulist(*,blist,%c)
    inc %c
  }
}

on *:DIALOG:blist:close:0: {
  unset %blist.num
  if ($did(blist,1).state != 1) .disable #blist
  if ($did(blist,1).state == 1) .enable #blist
  if ($did(blist,13).state != 1) || ($group(#blist) != on) halt
  if ($did(blist,13).state == 1) && ($group(#blist) == on) blkick
}

alias f7 blist

alias blist {
  unset %blist.num
  dialog -amo blist blist
}

alias cf7 {
  if ($group(#blist)) {
    if ($group(#blist) == on) {
      .disable #blist
      echo -a Blacklist is now OFF.
    }
    else {
      .enable #blist
      echo -a Blacklist is now ON.
    }
  }
  else echo -a Group #blist does not exist or is damaged. Please re-install file.
}


#blist on
alias blkick {
  var %a 1
  while ($chan(%a)) {
    var %c 1
    while ($ulist(*,blist,%c)) {
      var %b 1
      while ($ialchan($ulist(*,blist,%c),$chan(%a),%b).nick) {
        if ($v1 != $me) {
          mode $chan(%a) +b $ulist(*,blist,%c)
          kick $chan(%a) $v1 Blacklisted - $gettok($ulist(*,blist,%c).info,6-,32)
        }
        inc %b
      }
      inc %c
    }
    inc %a
  }
}

on blist:JOIN:#: { 
  if ($ulist($fulladdress,blist)) {
    mode $chan +b $ulist($fulladdress,blist,1)
    kick $chan $nick Blacklisted - $gettok($ulist($fulladdress,blist,1).info,6-,32)
  }
}

on *:NICK: {
  if ($newnick != $me) && ($ulist($ial($newnick,1),blist)) {
    var %a 1
    while ($comchan($newnick,%a)) {
      mode $comchan($newnick,%a) +b $ulist($ial($newnick,1),blist,1)
      kick $comchan($newnick,%a) $newnick Blacklisted - $gettok($ulist($ial($newnick,1),blist,1).info,6-,32)
      inc %a
    }
  }
}
#blist end