All pastes #203344 Raw Edit

Something

public text v1 · immutable
#203344 ·published 2006-10-15 02:28 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 } }