All pastes #246534 Raw Edit

Unnamed

public text v1 · immutable
#246534 ·published 2006-11-12 09:09 UTC
rendered paste body
menu channel,nicklist,status,menubar,query {
  Query Manager:qman
}
alias qman {
  if ($dialog(qdc1) == $null) {
    dialog -ma qcd1 qcd1
  }
  else {
    dialog -v qcd1
  }
}
alias -l qcdc {
  if ($window(@timed-out_queries) == $null) {
    /window -g2k0 +l @Timed-Out_Queries 200 200 600 200
    aline @timed-out_queries To View a Full listing of Missed/Ignored PM's Type /run querylogs.txt
    aline @timed-out_queries To Clear/Erase this log, type /remove querylogs.txt
  }   
  aline @timed-out_queries $timestamp $+(<,%querynick,>) %querytext
  write querylogs.txt $timestamp $+(<,%querynick,>) %querytext
  close -m %querynick 
  if ($dialog(qcd2) != $null) {
    dialog -x qcd2
  }
}
alias -l cleardata {
  unset %querynick
  unset %querypm
  dialog -x qcd2
}
dialog qcd1 {
  title "Query Control [v0.5]"
  size -1 -1 156 107
  option dbu
  radio "Block All Queries", 1, 5 5 50 10
  radio "Allow All Queries", 2, 5 13 50 10
  radio "Ask On Query", 3, 5 21 50 10
  box "", 4, 1 -1 59 35
  edit "", 5, 84 8 50 12, autohs
  text "Use [me] and [nick] to add their respective identifiers to the response", 7, 70 29 80 21
  box "Custom Response", 6, 62 -1 89 53
  text "Default Hostmask", 8, 73 63 42 8
  edit "", 9, 119 62 20 10, limit 1
  text "Block Time (Secs)", 10, 73 75 45 8
  edit "", 11, 119 74 20 10
  box "Ignore Options", 12, 62 55 89 33
  check "Block Colors", 13, 5 47 50 10
  check "Block # Adverts", 14, 5 55 50 10
  check "Block www./http:/.com", 15, 5 63 50 10
  check "Block On Join PM's", 16, 5 71 53 10
  button "View Allowed Nicks", 17, 3 92 54 10
  box "Specific Blocks", 18, 1 38 59 45
  button "Cancel", 19, 68 91 37 12, cancel
  button "OK", 20, 109 91 37 12, ok
}
dialog -l qcd2 {
  title ""
  size -1 -1 78 40
  option dbu
  edit %querynick %querytext, 5, 4 1 71 10, read
  button "Accept", 1, 1 13 37 12
  button "Perm Accept", 2, 40 13 37 12
  button "Ignore", 3, 1 26 37 12
  button "Block", 4, 40 26 37 12
}

dialog -l qcd3 {
  title
  size -1 -1 57 67
  option dbu
  list 1, 3 2 52 50, size
  button "Remove", 2, 3 53 25 12
  button "Add", 3, 30 53 25 12
}
on *:DIALOG:qcd1:sclick:20:{
  if ($did($dname,1).state == 0) && $did($dname,2).state == 0) && $did($dname,3).state == 0) {
    writeini QMan.ini Setup method prompt
  }
  elseif ($did($dname,1).state == 1) {
    writeini Qman.ini setup method block
  }
  elseif ($did($dname,2).state == 1) {
    writeini Qman.ini setup method accept
  }
  elseif ($did($dname,3).state == 1) {
    writeini Qman.ini setup method prompt
  }
  if ($did($dname,9).text != $null) && ($did($dname,9).text isnum 1-5) {
    writeini qman.ini setup hostmask $did($dname,9).text
  }
  if ($did($dname,11).text != $null) && ($did($dname,11).text isnum 1-) {
    writeini qman.ini setup ignoretime $did($dname,11).text
  }
  writeini qman.ini setup response $iif($did($dname,5).text != $null,$did($dname,5).text,Awaiting Query Validation...)
  writeini qman.ini setup response1  $iif($did($dname,5).text != $null,$replace($did($dname,5).text,[me],$chr(36) $+ me,[nick],$chr(36) $+ nick),Awaiting Query Validation...)
  writeini qman.ini setup bc $iif($did($dname,13).state == 1,1,0)
  writeini qman.ini setup ba $iif($did($dname,14).state == 1,1,0)
  writeini qman.ini setup bw $iif($did($dname,15).state == 1,1,0)
  writeini qman.ini setup bj $iif($did($dname,16).state == 1,1,0)
}
on *:DIALOG:qcd1:init:*:{
  if ($readini(qman.ini,setup,method) == block) { did -c $dname 1 }
  elseif ($readini(qman.ini,setup,method) == accept) { did -c $dname 2 }
  elseif ($readini(qman.ini,setup,method) == prompt) { did -c $dname 3 }
  elseif ($readini(qman.ini,setup,method) == $null) { did -c $dname 3 }
  did -a $dname 5 $iif($readini(qman.ini,setup,response) != $null,$readini(qman.ini,setup,response),Awaiting Query Validation... Please Wait)
  if ($readini(qman.ini,setup,bc) == 1) { did -c $dname 13 }
  if ($readini(qman.ini,setup,ba) == 1) { did -c $dname 14 }
  if ($readini(qman.ini,setup,bw) == 1) { did -c $dname 15 }
  if ($readini(qman.ini,setup,bj) == 1) { did -c $dname 16 }
  did -a $dname 9 $iif($readini(qman.ini,setup,hostmask) != $null,$readini(qman.ini,setup,hostmask),1)
  did -a $dname 11 $iif($readini(qman.ini,setup,ignoretime) != $null,$readini(qman.ini,setup,ignoretime),60)
}
on *:DIALOG:qcd1:sclick:17:{
  dialog -m qcd3 qcd3
}
on *:DIALOG:qcd2:sclick:1:{
  .timerqueryd off
  query -n %querynick Query Accepted
  window -a %querynick
  cleardata
}
on *:DIALOG:qcd2:sclick:2:{
  .timerqueryd off
  writeini qman.ini allowed %querynick 1
  query -n %querynick Query Accepted
  window -a %querynick
  cleardata
}
on *:DIALOG:qcd2:sclick:3:{
  close -m %querynick
  qcdc
}
on *:DIALOG:qcd2:sclick:4:{
  set $+(-u,$readini(qman.ini,setup,ignoretime)) %queryblocker [ $+ [ $address(%querynick,$readini(qman.ini,setup,hostmask)) ] ] 1
  close -m %querynick
  qcdc
}
on *:DIALOG:qcd3:init:*:{
  var %i = 0
  while (%i < $ini(qman.ini,allowed,0)) {
    inc %i 1
    did -a $dname 1 $ini(qman.ini,allowed,%i)
  }
}
on *:DIALOG:qcd3:sclick:2:{
  remini qman.ini allowed $$did($dname,1).seltext
  dialog -x qcd3
  dialog -m qcd3 qcd3
}
on *:DIALOG:qcd3:sclick:3:{
  var %name = $$?="Enter the name you wish to add"
  if ($readini(qman.ini,allowed,%name) != $null) { .echo -q $input(%name is already on the allowed list,ok) | halt }
  else {
    writeini qman.ini allowed %name 1
    did -a $dname 1 %name
  }
}
on ^*:OPEN:?:{
  if ($readini(qman.ini,setup,method) == block) { .msg $nick I am currently Not accepting PM's | halt }
  elseif ($readini(qman.ini,setup,bj) == 1) && (%ijustjoinedachannel == 1) { .msg $nick Your PM Has been blocked because I suspect that it is sent through an On Join Event | halt }
  elseif (($readini(qman.ini,setup,bc) == 1) && ($strip($1-,c) != $1- )) || (($readini(qman.ini,setup,ba) == 1) && ($chr(35) isin $1-)) || (($readini(qman.ini,setup,bw) == 1) && ((www. isin $1-) || (http: isin $1-) || (.com isin $1-))) { .msg $nick Your PM Has been blocked do to either Colors or Advertisement | halt }
  elseif ($readini(qman.ini,setup,method) == accept) { return }
  else {
    if (%queryblocker [ $+ [ $address($nick,$readini(qman.ini,setup,hostmask)) ] ] != $null) { .msg $nick Query Blocked | halt }
    elseif ($readini(qman.ini,allowed,$nick) != $null) { return }
    .msg $nick $readini(qman.ini,setup,response1)
    if ($dialog(qcd2) != $null) {
      if ($window(@timed-out_queries) == $null) {
        /window -g2k0 +l @Timed-Out_Queries 200 200 600 200
        aline @timed-out_queries To View a Full listing of Missed/Ignored PM's Type /run querylogs.txt
        aline @timed-out_queries To Clear/Erase this log, type /remove querylogs.txt   
      }     
      aline @timed-out_queries $timestamp $+(<,%querynick,>) %querytext
      write querylogs.txt $timestamp $+(<,%querynick,>) %querytext
      set %querynick $nick
      set %querytext $1-
      did -r qcd2 5
      did -a qcd2 5 %querynick %querytext
      .timerqueryd 1 10 qcdc
    }
    else {
      set %querynick $nick
      set %querytext $1-
      dialog -m qcd2 qcd2
      .timerqueryd 1 10 qcdc
    }
  }
}
on *:JOIN:#:{ if ($nick == $me) { set -u4 %ijustjoinedachannel 1 } }