QueryManager — File Browser

QueryManagerv2.2.9 / QueryManagerv2.2.9 / QueryManager.mrc

QueryManager.mrc — 10.47 KB — Download this file

/******************************************
*							*
*          QueryManager					*
*          Version: 2.2.9					*
*          Created by: Salz`				*
*          Email: salzig@gmail.com			*
*          Web: http://www.mircboard.de		*
*          IRC: quakenet.org #mirc-scripting		*
*          2006-03-27					*
*							*
*******************************************
*/
dialog QM {
  title "QueryManager [/QM] v2.2.9"
  size -1 -1 162 122
  option dbu
  tab "Configuration", 100, 3 -1 156 120
  box "Basic Configuration", 5, 5 16 150 43, tab 100
  check "Block all incoming messeges", 6, 63 25 78 10, tab 100 flat
  check "Use Whitelist", 7, 14 35 41 10, tab 100 flat
  check "Use Blacklist", 8, 14 25 43 10, tab 100 flat
  check "Accept all incoming messeges", 9, 63 35 83 10, tab 100 flat
  text "Auto Block messeges after:", 26, 14 48 70 8, tab 100
  edit "0", 27, 82 46 16 10, tab 100 autohs right
  text "sec.", 28, 100 48 13 8, tab 100
  button "Reset", 33, 113 71 37 12, tab 100 flat
  edit "", 34, 9 86 142 10, tab 100 autohs
  button "Change", 32, 73 71 37 12, tab 100 flat
  box "Edit Text", 30, 5 62 150 38, tab 100
  combo 31, 9 72 61 37, tab 100 size drop
  button "Ok", 2, 78 103 37 12, tab 100 flat ok
  button "Cancel", 3, 118 103 37 12, tab 100 flat cancel
  tab "White/Black List", 10
  box "Whitelist", 11, 5 15 150 49, tab 10
  list 12, 7 23 104 38, tab 10 size
  button "Remove", 13, 114 49 37 12, tab 10 flat
  button "Edit", 14, 114 36 37 12, tab 10 flat
  button "Add", 15, 114 23 37 12, tab 10 flat
  box "Blacklist", 22, 5 66 150 49, tab 10
  list 19, 7 74 104 38, tab 10 size
  button "Add", 18, 114 74 37 12, tab 10 flat
  button "Edit", 20, 114 87 37 12, tab 10 flat
  button "Remove", 21, 114 100 37 12, tab 10 flat
  menu "&File", 600
  item "&Reset",620, 600
  item break, 1000
  item "&Unload",630, 600
  item break, 1001
  item "&Remove",640, 600
  item break, 1002
  item "&Close", 610, 600
  menu "&Info", 660
  item "&About", 670, 660
  item "&Support", 680, 660
}
on *:dialog:qm:init:0:{
  if ($qm.config(blockall)) did -c $dname 6
  if ($qm.config(allowall)) did -c $dname 9
  if ($qm.config(blacklist)) did -c $dname 8
  if ($qm.config(whitelist)) did -c $dname 7
  if ($qm.config(autoclose)) did -ra $dname 27 $ifmatch
  var %x = 0
  while (%x < $qm.text(0).title) {
    inc %x
    did -a $dname 31 $qm.text(%x).title
  }
  did -fc $dname 31 1
  did -ra $dname 34 $qm.text($did($dname,31))
  qm.list $dname
}
on *:dialog:qm:edit:27:{
  if ($did($dname,$did) isnum) { qm.config autoclose $ifmatch }
}
on *:dialog:qm:sclick:14:{
  var %know = $did($dname,12).sel
  if ($input(Please enter the nickname here:,e,edit nick from whitelist,$did($dname,12).seltext,)) {
    var %known = $ifmatch
    did -d $dname 12 %know
    did -a $dname 12 %known
    qm.white -r %know
    qm.white %known
  }
}
on *:dialog:qm:sclick:20:{
  var %know = $did($dname,19).sel
  if ($input(Please enter the nickname here:,e,edit nick from blacklist,$did($dname,19).seltext,)) {
    var %known = $ifmatch
    did -d $dname 19 %know
    did -a $dname 19 %known
    qm.white -r %know
    qm.white %known
  }
}
on *:dialog:qm:sclick:15:{
  qm.white $input(Please enter the nickname here:,e,add nick to whitelist,,)
  qm.list $dname
}
on *:dialog:qm:sclick:18:{
  qm.black $input(Please enter the nickname here:,e,add nick to blacklist,,)
  qm.list $dname
}
on *:dialog:qm:sclick:13:{
  qm.white -r $did($dname,12).seltext
  qm.list $dname
}
on *:dialog:qm:sclick:21:{
  qm.black -r $did($dname,19).seltext
  qm.list $dname
}
on *:dialog:qm:sclick:6:{
  qm.config blockall $did($dname,$did).state
}
on *:dialog:qm:sclick:7:{
  qm.config whitelist $did($dname,$did).state
}
on *:dialog:qm:sclick:8:{
  qm.config blacklist $did($dname,$did).state
}
on *:dialog:qm:sclick:9:{
  qm.config allowall $did($dname,$did).state
}
on *:dialog:qm:sclick:31:{
  did -ra $dname 34 $qm.text($did($dname,31))   
}
on *:dialog:qm:sclick:32:{
  qm.text $did($dname,31) $did($dname,34)
}
on *:dialog:qm:sclick:33:{
  qm.text -d $did($dname,31)
  did -ra $dname 34 $qm.text($did($dname,31))
}
on *:dialog:qm:sclick:25:{ run http://mircboard.de }
dialog qminform {
  title "Query, autoblock in: 10sec"
  size -1 -1 160 71
  option dbu
  text "Name:", 2, 14 11 19 9, right
  box "Information", 3, 3 2 154 53
  text "$nick", 5, 35 11 119 8
  text "ComChan:", 4, 8 20 25 8
  text "$comchan", 6, 35 20 119 14
  button "allow", 1, 3 57 37 12, flat ok
  button "block", 7, 42 57 37 12, flat cancel
  button "blacklist", 8, 120 57 37 12, flat
  button "whitelist", 9, 81 57 37 12, flat
  text "Message:", 10, 8 35 25 8, right
  text "", 11, 35 35 119 17
}
on ^*:open:?:{
  echo $color(info2 text) -ts * Incomming query: $nick
  .timer -h 1 20 window -h $nick
  if (($qm.config(blacklist)) && ($qm.black($nick))) { 
    .msg $nick $qm.text(blacklist)
    .timer $+ $nick 1 20 close -m $nick 
    haltdef 
    halt
  }
  if (($qm.config(whitelist)) && ($qm.white($nick))) { 
    .msg $nick $qm.text(whitelist) 
    .timer -h 1 30 window -wa $nick
    return
  }
  if ($qm.config(allowall)) { 
    .timer -h 1 30 window -w $nick
  }
  if ($qm.config(blockall)) { haltdef | halt }
  else {
    .msg $nick $qm.text(wait)
    .timer -h 1 30 qm.inform $nick $1-
  }
}
alias qm.inform { ; nick
  dialog -m $+(qminform.,$1,.,$replace($2-,$chr(32),_)) qminform
}
on *:dialog:qminform.*:init:0:{
  if ($qm.config(autoclose) > 0)  .timer $+ $gettok($dname,2,46) $qm.config(autoclose) 1 qm.time $dname 
  else dialog -t $dname Query
  did -a $dname 5 $gettok($dname,2,46)
  var %x = 0, %text
  while (%x < $comchan($gettok($dname,2,46),0)) {
    inc %x
    %text = %text $comchan($gettok($dname,2,46),%x)
  }
  did -a $dname 6 $iif(%text,$ifmatch,no)
  did -a $dname 11 $replace($gettok($dname,3-,46),_,$chr(32))
}
on *:dialog:qminform.*:close:0:{
  .timer $+ $gettok($dname,2,46) off
}
on *:dialog:qminform.*:sclick:8:{
  qm.black $gettok($dname,2,46)
  .timer -h 1 20 close -m $gettok($dname,2,46)
  dialog -c $dname
}
on *:dialog:qminform.*:sclick:9:{
  qm.white $gettok($dname,2,46)
  .timer -h 1 20 window -a $gettok($dname,2,46)
  dialog -k $dname
}
on *:dialog:qminform.*:sclick:1:{
  .msg $gettok($dname,2,46) $qm.text(allow)
  window -aw $gettok($dname,2,46)
}
on *:dialog:qminform.*:sclick:7:{
  .msg $gettok($dname,2,46) $qm.text(block)
  .ignore -pu10 $gettok($dname,2,46)
  close -m $gettok($dname,2,46)
}
alias qm.time { ;dialog
  if (!$qm.config(autoclose)) return
  if (!$dialog($1)) return
  if ($dialog($1).title == Query) dialog -t $1 Query, autoblock in: $duration($qm.config(autoclose))
  if ($duration($gettok($dialog($1).title,2,58)) > 0) {
    dialog -t $1 Query, autoblock in: $duration($calc($duration($gettok($dialog($1).title,2,58)) -1))
  }
  if (!$duration($gettok($dialog($1).title,2,58))) { dialog -c $1 }
}
on *:load:{
  qm.default
}
on *:dialog:qm:menu:610:{
  dialog -c $dname
}
on *:dialog:qm:menu:620:{
  qm.default
}
on *:dialog:qm:menu:630:{
  dialog -c $dname
  .unload -rs $qt($isalias(qm.inform).fname)
}
on *:dialog:qm:menu:640:{
  .dialog -c $dname
  .remove $qm.path(qm.config)
  .unload -rs $qt($isalias(qm.inform).fname)
  .remove $qt($isalias(qm.inform).fname)
}
on *:dialog:qm:menu:670:{
  noop $input(QueryManager $crlf AddonScript made by Salz` $crlf IRC://irc.quakenet.org/mirc-scripting $crlf www.mIRCscripte.de $crlf www.mIRCboard.de,o)
}
on *:dialog:qm:menu:680:{
  server -m irc.quakenet.org -j #mirc-scripting
}
alias qm.default {
  if (!$exists($qm.path)) { mkdir $qm.path }
  if (!$exists($qm.path(qm.config))) {
    var %do = writeini $qm.path(qm.config)
    %do config blacklist 1
    %do config whitelist 1
    %do config allowall 0
    %do config blockall 0
    %do config autoclose 60
    %do text blacklist Sorry, no chance for you :)
    %do text whitelist hello my friend :)
    %do text wait plz hold in line...
    %do text allow you're wellcome :)
    %do text block sorry, no time.
  }
}
alias qm.text {
  if ($1 isnum) {
    if ($prop == title) {
      if ($1 > 0) { return $ini($qm.path(qm.config),text,$1) }
      else { return $ini($qm.path(qm.config),text,0) }
    }
    else {
      if ($1 > 0) { return $readini($qm.path(qm.config),text,$ini($qm.path(qm.config),text,$1)) }
      else { return $ini($qm.path(qm.config),text,0) }
    }
  }
  if (!$isid) {
    if ($1 == -d) {
      if ($2 == blacklist) .timer 1 0 qm.text $2 Sorry, no chance for you :)
      if ($2 == whitelist) .timer 1 0 qm.text $2 hello my friend :)
      if ($2 == wait) .timer 1 0 qm.text $2 plz hold in line...
      if ($2 == allow) .timer 1 0 qm.text $2 you're welcome :)
      if ($2 == block) .timer 1 0 qm.text $2 sorry, no time.
    }
    else { writeini $qm.path(qm.config) text $1- }
  }
  else { return $readini($qm.path(qm.config),text,$1) }
}
alias qm.path {
  if (!$isid) return
  if ($1) return $+(",$scriptdir,qm\,$1-,")
  else return $+(",$scriptdir,qm\,") 
}
alias qm.list {
  did -r $1 19
  did -r $1 12
  var %x = 0
  while (%x < $qm.black(0)) {
    inc %x
    did -a $1 19 $qm.black(%x)
  }
  var %x = 0
  while (%x < $qm.white(0)) {
    inc %x
    did -a $1 12 $qm.white(%x)
  }
}
alias qm.black {
  if (!$isid) {
    if ($1 == -r) .ruser qmblack $2 $iif(*!*@* !iswm $2,3)
    else .guser qmblack $1 $iif(*!*@* !iswm $2,3)
  }
  if (($isid) && ($1 isnum)) return $ulist(*,qmblack,$1)
  else return $iif($ulist($address($1,3),qmblack,0),$true,$false)
}
alias qm.white {
  if (!$isid) {
    if ($1 == -r) .ruser qmwhite $2 $iif(*!*@* !iswm $2,3)
    else .guser qmwhite $1 $iif(*!*@* !iswm $2,3)
  }
  if (($isid) && ($1 isnum)) return $ulist(*,qmwhite,$1)
  else return $iif($ulist($address($1,3),qmwhite,0),$true,$false) 
}
alias qm.config {
  :start
  if (!$exists($qm.path)) { qm.default | goto start }
  if (!$isid) { writeini $qm.path(qm.config) config $1- }
  else { return $readini($qm.path(qm.config),config,$1) }
}
alias QM { qm.default | dialog -m QM QM }
menu menubar {
  Query Manager [/QM]:/QM
}
menu Query,Nicklist {
  Query Manager
  . $iif($qm.config(whitelist),$iif(!$qm.white($1),whitelist $1 )):qm.white $1
  . $iif($qm.config(whitelist),$iif($qm.white($1),unwhitelist $1 )):qm.white -r $1
  . $iif($qm.config(blacklist),$iif(!$qm.black($1),blacklist $1 )):qm.black $1
  . $iif($qm.config(blacklist),$iif($qm.black($1),unblacklist $1)):qm.black -r $1
  . $iif(($qm.config(blacklist)) || ($qm.config(blacklist)),-)
  . Configure:/qm
}