rendered paste bodymenu 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 } }