All pastes #330305 Raw Edit

Miscellany

public text v1 · immutable
#330305 ·published 2007-01-27 20:17 UTC
rendered paste body
menu channel {
  Blacklist:/blist
}
alias blist {
  dialog -m blist blist 
}
dialog Blist {
  title "Blacklist v1.1"
  size -1 -1 145 114
  option dbu
  button "Ok", 2, 100 96 37 12, ok cancel
  box "Channels", 4, 3 1 88 110
  text "Only blacklist in these channels:", 5, 7 10 80 8
  combo 6, 7 19 76 60, size
  button "Add", 7, 7 80 37 12
  button "Delete", 8, 48 80 37 12
  box "On/Off", 9, 97 1 45 32
  radio "Blacklist ON", 10, 99 9 41 10
  check "Blacklist in ALL channels", 11, 8 96 70 10
  radio "Blacklist OFF", 12, 99 19 41 10
  box "Blacklist", 13, 97 33 45 78
  button "Add", 14, 100 40 37 12
  button "List", 15, 100 54 37 12
  button "Clear", 16, 100 68 37 12
  button "Help", 17, 100 82 37 12
}
on *:dialog:Blist:init:0: {
  if ($readini(Blist.ini,n,settings,blacklist) == on) { did -c Blist 10 }
  else { did -c Blist 12 }
  if ($readini(Blist.ini,n,settings,allchan) == on) { did -c Blist 11 }
  var %s = 1
  while ($read(Chanlist.txt,%s)) {
    did -a Blist 6 $read(Chanlist.txt,%s)
    inc %s
  }
}
on *:dialog:Blist:sclick:*: {
  if ($did == 17) {
    dialog -m BlistHelp BlistHelp
  }
  if ($did == 11) { 
    if ($did(11).state) {
      writeini -n Blist.ini settings allchan on
    }
    else { writeini -n Blist.ini settings allchan off }
  }
  if ($did == 10) {
    if ($did(10).state) {
      writeini -n Blist.ini settings blacklist on
    }
  }
  if ($did == 12) {
    if ($did(12).state) {
      writeini -n Blist.ini settings blacklist off
    }
  }
  if ($did == 7) {
    if ($did(6)) {
      if (!$read(Chanlist.txt,w,$did(6))) && ($chr(35) == $left($did(6),1)) {
        write Chanlist.txt $did(6)
        did -r Blist 6
        var %s = 1
        while ($read(Chanlist.txt,%s)) {
          did -a Blist 6 $read(Chanlist.txt,%s)
          inc %s
        }
      }
    }
  }
  if ($did == 8) {
    if ($did(6)) {
      if ($read(Chanlist.txt,w,$did(6))) && ($chr(35) == $left($did(6),1)) {
        write -ds $+ $did(6) Chanlist.txt
        did -r Blist 6
        var %s = 1
        while ($read(Chanlist.txt,%s)) {
          did -a Blist 6 $read(Chanlist.txt,%s)
          inc %s
        }
      }
    }
  }
  if ($did == 14) { if (!$dialog(Blistadd)) dialog -m blistadd blistadd }
  if ($did == 15) { if (!$dialog(Blistlist)) dialog -m blistlist blistlist }
  if ($did == 16) { if (!$dialog(Blistclear)) dialog -m blistclear blistclear }
}
dialog Blistadd {
  title "Blacklist-Add"
  size -1 -1 134 160
  option dbu
  text "Blacklist Add", 1, 10 5 32 8
  text "Ban nick:", 2, 20 23 23 8
  edit "", 3, 48 22 72 10, autohs autovs
  text "Ban Address:", 4, 10 34 33 8
  edit "", 5, 48 33 72 10, autohs autovs
  text "Kick Message:", 7, 9 45 34 8
  edit "", 8, 48 44 72 10, autohs autovs
  text "Notes:", 9, 26 56 17 8
  edit "", 10, 48 55 72 41, multi autovs
  button "Add", 11, 45 142 37 12
  button "Cancel", 12, 91 142 37 12, ok cancel
  box "Blacklist", 6, 6 14 121 127
  box "Ban", 13, 49 99 50 38
  radio "Nickname", 14, 52 107 38 10
  radio "Address", 15, 52 116 44 10
  radio "Both", 16, 52 125 41 10
  text "This script only uses Mode 2 Banmask: *!*@host ", 17, 9 74 35 39
}
on *:dialog:BlistAdd:init:0: {
  if (!%blist.update) {
    did -ra BlistAdd 3 Nickname
    did -ra BlistAdd 5 *!*@Host
    did -ra BlistAdd 8 Blacklisted
    did -ra BlistAdd 10 Notes
    did -c BlistAdd 15
  }
  elseif (%blist.update) {
    did -ra BlistAdd 3 $iif($readini(Blist.ini,n,%blist.update,Nickname),$v1,No info)
    did -ra BlistAdd 5 $iif($readini(Blist.ini,n,%blist.update,Address),$v1,No info)
    did -ra BlistAdd 8 $iif($readini(Blist.ini,n,%blist.update,Kick),$v1,Blacklisted)
    did -ra BlistAdd 10 $iif($readini(Blist.ini,%blist.update,Notes),$v1,No info)
    if ($chr(64) isin %blist.update) { did -ra BlistAdd 5 %blist.update | did -c BlistAdd 15 }
    else { did -ra BlistAdd 3 %blist.update | did -c Blistadd 14 }
    unset %blist.update
  }
}
on *:dialog:BlistAdd:sclick:*: {
  if ($did == 11) {
    if ((!$did(3)) || ($did(3) == Nickname) || ($did(3) == No info)) && (($did(14).state) || ($did(16).state)) { halt }
    if ((!$did(5)) || ($did(5) == *!*@Host) || ($did(5) == No info)) && (($did(15).state) || ($did(16).state)) { halt }
    if ($did(14).state) {
      if (!$read(Banlist.txt,w,$did(3))) { 
        write Banlist.txt $did(3) 
      }
      writeini -n Blist.ini $did(3) Nickname $did(3)
      writeini -n Blist.ini $did(3) Kick $iif($did(8),$v1,Blacklisted)
      var %s = 1
      while (%s <= $did(10).lines) {
        var %notes = %notes $did(10,%s)
        inc %s 
      }
      writeini -n Blist.ini $did(3) Notes %notes
      dialog -c BlistAdd
      if ($dialog(blistlist)) {
        dialog -c blistlist
        dialog -m blistlist blistlist
      }
    }
    elseif ($did(15).state) {
      if (!$read(Banlist.txt,w,$mask(! $+ $did(5),2))) { 
        write Banlist.txt $mask(! $+ $did(5),2)
      }
      writeini -n Blist.ini $did(5) Address $mask(! $+ $did(5),2)
      writeini -n Blist.ini $did(5) Kick $iif($did(8),$v1,Blacklisted)
      var %s = 1
      while (%s <= $did(10).lines) {
        var %notes = %notes $did(10,%s)
        inc %s 
      }
      writeini -n Blist.ini $did(5) Notes %notes
      dialog -c BlistAdd
      if ($dialog(blistlist)) {
        dialog -c blistlist
        dialog -m blistlist blistlist
      }
    }
    elseif ($did(16).state) {
      if (!$read(Banlist.txt,w,$did(3))) { 
        write Banlist.txt $did(3) 
      }
      if (!$read(Banlist.txt,w,$mask(! $+ $did(5),2))) { 
        Write Banlist.txt $mask(! $+ $did(5),2)
      }
      writeini -n Blist.ini $did(3) Nickname $did(3)
      writeini -n Blist.ini $did(3) Address $mask(! $+ $did(5),2)
      writeini -n Blist.ini $did(3) Kick $iif($did(8),$v1,Blacklisted)
      var %s = 1
      while (%s <= $did(10).lines) {
        var %notes = %notes $did(10,%s)
        inc %s 
      }
      writeini -n Blist.ini $did(3) Notes %notes
      if (!$read(Banlist.txt,w,$mask(! $+ $did(5),2))) { write Banlist.txt $mask(! $+ $did(5),2) }
      writeini -n Blist.ini $mask(! $+ $did(5),2) Nickname $did(3)
      writeini -n Blist.ini $mask(! $+ $did(5),2) Address $mask(! $+ $did(5),2)
      writeini -n Blist.ini $mask(! $+ $did(5),2) Kick $iif($did(8),$v1,Blacklisted)
      var %s = 1
      while (%s <= $did(10).lines) {
        var %notes = %notes $did(10,%s)
        inc %s 
      }
      writeini -n Blist.ini $did(5) Notes %notes
      dialog -c BlistAdd
      if ($dialog(blistlist)) {
        dialog -c blistlist
        dialog -m blistlist blistlist
      }
    }
  }
}
dialog BlistList {
  title "Blacklist - List"
  size -1 -1 155 115
  option dbu
  text "Blacklist", 1, 7 3 25 8
  list 2, 12 20 130 72, size
  button "Edit/Info", 3, 7 100 37 12
  button "Cancel", 4, 111 100 37 12, ok cancel
  button "Delete", 5, 48 100 37 12
  box "Blacklist - List", 6, 7 12 141 87
}
on *:dialog:BlistList:init:0: {
  var %s = 1
  while ($read(Banlist.txt,%s)) {
    did -a BlistList 2 $read(Banlist.txt,%s)
    inc %s
  }
}
on *:dialog:BlistList:sclick:*: {
  if ($did == 3) {
    set %blist.update $did(2).seltext
    dialog -m blistadd blistadd
  }
  if ($did == 5) {
    if ($did(2).seltext) {
      write -ds $+ $did(2).seltext Banlist.txt
      remini Blist.ini $did(2).seltext
      did -r BlistList 2
      var %s = 1
      while ($read(Banlist.txt,%s)) {
        did -a BlistList 2 $read(Banlist.txt,%s)
        inc %s
      }
    }
  }
}
dialog BlistClear {
  title "Blacklist - Clear"
  size -1 -1 118 37
  option dbu
  text "Are you sure you want to clear the blacklist?", 1, 5 6 111 8
  button "Yes", 2, 6 21 37 12, cancel
  button "No", 3, 79 21 37 12, ok cancel
}
on *:dialog:BlistClear:sclick:2: { .remove Banlist.txt }
dialog BlistHelp {
  title "Blacklist - Help"
  size -1 -1 238 107
  option dbu
  list 1, 4 11 229 79, size hsbar
  text "Blacklist help:", 2, 4 2 34 8
  button Ok, 3, 196 92 37 12, ok cancel
}
on *:dialog:BlistHelp:init:*: {
  did -ra BlistHelp 1 Displaying the Help File for Blacklist V1.1...
  sockopen Blist.Help jooldesigns.net 80
}
on *:sockopen:blist.help: {
  sockwrite -nt $sockname GET /temp/archived/47/Blistv1.1.txt HTTP/1.1
  sockwrite -nt $sockname Host: jooldesigns.net $+ $crlf $+ $crlf
}
on *:sockread:blist.help: {
  if ($sockerr) { did -ra BlistHelp 1 Error }
  else {
    var %Blist.Help
    sockread %Blist.Help
    did -z BlistHelp 1
    if (%Blist.Read == 1) {
      did -a BlistHelp 1 %Blist.Help
    }
    if (::start:: == %Blist.Help) { set %Blist.Read 1 | halt }
  }
}
on *:sockclose:blist.help: { unset %Blist.Read }
on *:join:#: {
  if ($readini(Blist.ini,n,settings,blacklist) == on) {
    if ($read(Chanlist.txt,w,$chan)) && (($me isop $chan) || ($me ishop $chan)) {
      blacklist.scan $chan
      var %e = 1
      while (%e <= $nick($chan,0)) {
        if ($read(Banlist.txt,w,$address($nick($chan,%e),2))) {
          if ($nick($chan,%e) == $me) { inc %e | continue }
          mode $chan +b $address($nick,2)
          kick $chan $nick($chan,%e) $iif($readini(Blist.ini,n,$read(Banlist.txt,%e),Kick),$v1,Blacklisted)
        }
        inc %e
        continue
      }
    }
  }
}
alias blacklist.scan {
  var %f = 1
  while ($read(Banlist.txt,%f)) {
    if ($read(Banlist.txt,%f) ison $1) {
      mode $1 +b $read(Banlist.txt,%f)
      kick $1 $read(Banlist.txt,%f) $iif($readini(Blist.ini,n,$read(Banlist.txt,%f),Kick),$v1,Blacklisted)
    }
    inc %f
    continue
  }
}
alias blacklist {
  if ($me isop $chan) || ($me ishop $chan) {
    ban -k $chan $1 2 Blacklisted 12¤4 %kicks $+ 1
    blist
    dialog -m blistadd blistadd
    did -ra BlistAdd 3 $1
    did -ra BlistAdd 5 $address($1,2)
    did -u BlistAdd 15
    did -c BlistAdd 16
  }
}