;;;;;;;;;;;;;;;;;;;;;;;;;; ;; QueryAcceptor ;; by bunkahumpa ;; bunkahumpa@playcs.com ;;;;;;;;;;;;;;;;;;;;;;;;;; on *:load:{ set %queryacceptor on echo -a *** QueryAcceptor Loaded Successfully. echo -a If you need to temporarily shut it off, select shut off from the popups. echo -a If you want to unload the script, select unload. echo -a You can delete saved users by selecting Saved Addresses. } alias qa.unload { if ($?!="Are you sure you want to unload?") { unset %qa.* unload -rs queryacceptor.mrc } } on *:unload:{ echo -a *** QueryAcceptor has been unloaded. } alias qa.accept { writeini QueryAcceptorAddresses.ini Saved $gettok($ial($gettok($snicks,1,44)),2,33) accept echo -a *** Added $gettok($snicks,1,44) ( $+ $gettok($ial($gettok($snicks,1,44)),2,33) $+ ) to accept saved addresses } alias qa.decline { writeini QueryAcceptorAddresses.ini Saved $gettok($ial($gettok($snicks,1,44)),2,33) decline echo -a *** Added $gettok($snicks,1,44) ( $+ $gettok($ial($gettok($snicks,1,44)),2,33) $+ ) to decline saved addresses } menu nicklist { - QueryAcceptor - Always accept from $1:qa.accept QueryAcceptor - Always decline from $1:qa.decline - } menu status,channel,query,menubar { - QueryAcceptor .Saved Addresses:dialog -m savedaddresses savedaddresses .- .Turn $iif(%queryacceptor == on, off, on):$iif(%queryacceptor == on, set %queryacceptor off, set %queryacceptor on) .Unload:qa.unload - } dialog queryacceptor { title "QueryAcceptor" size -1 -1 133 61 option dbu text %qa.nick, 1, 8 10 122 8 box "QueryAcceptor", 2, 1 0 131 60 text "is attempting to send you a message.", 3, 8 18 95 8 button "Accept", 4, 8 28 37 9 button "Decline", 5, 50 28 37 9 check "Always", 6, 8 47 28 8 combo 7, 37 45 38 34, size drop text "queries from this user", 8, 78 47 53 8 box "Options", 9, 1 38 131 22 } on *:dialog:queryacceptor:init:0:{ did -a queryacceptor 7 Accept did -a queryacceptor 7 Decline did -c queryacceptor 7 1 } on *:dialog:queryacceptor:sclick:4:{ did -b queryacceptor 5 if ($did(6).state == 1) { if ($did(7) == Accept) { writeini QueryAcceptorAddresses.ini Saved %qa.address accept } if ($did(7) == Decline) { writeini QueryAcceptorAddresses.ini Saved %qa.address decline } } window -w %qa.nick dialog -x queryacceptor queryacceptor window -a %qa.nick unset %qa.nick unset %qa.address } on *:dialog:queryacceptor:sclick:5:{ did -b queryacceptor 4 if ($did(6).state == 1) { if ($did(7) == Accept) { writeini QueryAcceptorAddresses.ini Saved %qa.address accept } if ($did(7) == Decline) { writeini QueryAcceptorAddresses.ini Saved %qa.address decline } } close -m %qa.nick dialog -x queryacceptor queryacceptor unset %qa.nick unset %qa.address } on *:open:?:{ if (%queryacceptor == on) { if ($dialog(queryacceptor)) { .msg $nick Sorry $nick $+ , but I am busy with another message. Please try again later. close -m $nick } else { if ($readini(QueryAcceptorAddresses.ini,Saved,$gettok($ial($nick),2,33))) { if ($readini(QueryAcceptorAddresses.ini,Saved,$gettok($ial($nick),2,33)) == decline) { close -m $nick } } else { set %qa.nick $nick set %qa.address $gettok($ial($nick),2,33) window -h %qa.nick dialog -m queryacceptor queryacceptor } } } } dialog savedaddresses { title "Saved Addresses" size -1 -1 244 131 option dbu box "", 1, 2 0 241 130 box "", 2, 2 0 61 130 button "Remove", 3, 33 86 27 8 button "Add", 7, 5 86 27 8 text "To add a new address, click on the Add button. To remove an address, select one to the right and click on the Remove button. To change an address, select one on the right and click on the Edit button.", 4, 6 10 53 74 list 5, 66 7 172 119, size extsel hsbar vsbar button "Close", 6, 14 112 37 12, ok button "Edit", 8, 19 95 27 8 box "", 9, 2 103 61 27 } on *:dialog:savedaddresses:init:0:{ var %line = 1 var %ini = 1 while (%ini <= $ini(QueryAcceptorAddresses.ini,Saved,0)) { did -i savedaddresses 5 %line $ini(QueryAcceptorAddresses.ini,Saved,%ini) ( $+ $readini(QueryAcceptorAddresses.ini,Saved,$ini(QueryAcceptorAddresses.ini,Saved,%ini)) $+ ) inc %line inc %ini } } on *:dialog:savedaddresses:sclick:3:{ if ($did(savedaddresses,5).seltext != $null) { remini QueryAcceptorAddresses.ini Saved $gettok($did(savedaddresses,5).seltext,1,32) did -d savedaddresses 5 $did(savedaddresses,5).sel } } on *:dialog:savedaddresses:sclick:7:{ dialog -m add_address add_address } on *:dialog:savedaddresses:sclick:8:{ if ($did(savedaddresses,5).seltext != $null) { set %qa.editaddress $gettok($did(savedaddresses,5).seltext,1,32) dialog -m edit_address edit_address } } on *:dialog:savedaddresses:sclick:6:{ dialog -x savedaddresses savedaddresses } dialog add_address { title "Add New Address" size -1 -1 144 53 option dbu box "New Address", 1, 0 0 144 53 text "Enter an address and select to always accept or decline messages from that address:", 2, 7 9 118 14 edit "", 3, 7 25 134 10 combo 4, 95 37 46 50, size drop button "Add Address", 5, 7 37 37 11 button "Cancel", 6, 48 37 37 11 } on *:dialog:add_address:init:0:{ did -a add_address 4 Accept did -a add_address 4 Decline did -c add_address 4 1 } on *:dialog:add_address:sclick:5:{ if ($did(3)) { if ($did(3) == You must enter an address here!) { halt } if ($did(4) == Accept) { did -a savedaddresses 5 $did(add_address,3) (accept) writeini QueryAcceptorAddresses.ini Saved $did(3) accept } if ($did(4) == Decline) { did -a savedaddresses 5 $did(add_address,3) (decline) writeini QueryAcceptorAddresses.ini Saved $did(3) decline } dialog -x add_address add_address } else { did -a add_address 3 You must enter an address here! } } on *:dialog:add_address:sclick:6:{ dialog -x add_address add_address } dialog edit_address { title "Edit Saved Address" size -1 -1 134 55 option dbu box "Edit Address", 1, 0 0 134 55 text "Edit the selected address:", 2, 11 9 64 8 edit "", 3, 11 18 120 10 combo 4, 11 29 50 49, size drop button "Save", 5, 11 42 37 9 button "Cancel", 6, 49 42 37 9 } on *:dialog:edit_address:init:0:{ did -a edit_address 3 %qa.editaddress did -a edit_address 4 Accept did -a edit_address 4 Decline did -c edit_address 4 1 } on *:dialog:edit_address:sclick:5:{ if ($did(3)) { if ($did(3) == This cannot be blank! Close and try again.) { halt } if ($did(4) == Accept) { did -o savedaddresses 5 $did(savedaddresses,5).sel $did(edit_address,3) (accept) remini QueryAcceptorAddresses.ini Saved %qa.editaddress writeini QueryAcceptorAddresses.ini Saved $did(3) accept } if ($did(4) == Decline) { did -o savedaddresses 5 $did(savedaddresses,5).sel $did(edit_address,3) (decline) remini QueryAcceptorAddresses.ini Saved %qa.editaddress writeini QueryAcceptorAddresses.ini Saved $did(3) decline } dialog -x edit_address edit_address unset %qa.editaddress } else { did -a edit_address 3 This cannot be blank! Close and try again. } } on *:dialog:edit_address:sclick:6:{ dialog -x edit_address edit_address unset %qa.editaddress }