rendered paste bodymenu menubar {
Secure Private Messenger
.Allowed List:/dialog -m allow allow
.Blocked List:/dialog -m block block
}
dialog pm {
title "Secure Private Message"
size -1 -1 343 142
option dbu
box "Information", 1, 3 2 335 84
box "Allow?", 2, 3 89 81 29
text "Nickname", 3, 6 11 25 8
text "Messages", 4, 6 21 25 8
list 5, 34 10 98 10, size
list 6, 34 21 300 60, size
button "Yes", 7, 6 100 37 12
button "No", 8, 43 100 37 12
box "Blocker", 9, 90 89 51 50
box "Allow", 10, 147 89 50 50
button "Add Address", 11, 98 97 37 12
button "Add Nickname", 12, 98 109 37 12
button "View List", 13, 98 121 37 12
button "Add Address", 14, 153 97 37 12
button "Add Nickname", 15, 153 109 37 12
button "View List", 16, 153 121 37 12
}
on *:DIALOG:pm:sclick:11:{
writeini Block.ini Pm $address(%nick,2) $address(%nick,2)
msg %nick You have been blocked
unset %nick
unset %message
dialog -x pm pm
}
on *:DIALOG:pm:sclick:12:{
wirteini Block.ini Pm %nick %nick
msg %nick You have been blocked
unset %nick
unset %message
dialog -x pm pm
}
on *:DIALOG:pm:sclick:13:{ dialog -ma block block }
on *:DIALOG:pm:sclick:14:{
writeini Block.ini Allow $address(%nick,2) $address(%nick,2)
msg %nick You have been allowed
query %nick
unset %nick
unset %message
dialog -x pm pm
}
on *:DIALOG:pm:sclick:15:{
writeini Block.ini Allow %nick %nick
msg %nick You have been allowed
query %nick
unset %nick
unset %message
dialog -x pm pm
}
on *:DIALOG:pm:sclick:16:{ dialog -ma allow allow }
on *:DIALOG:pm:init:*:{
if (%message && %nick) {
did -a pm 5 %nick
did -a pm 6 %message
}
}
on *:DIALOG:pm:sclick:7:{
msg %nick Query has been accepted
var %x = 1
while ($did(pm,6,%x)) {
echo $did(pm,6,%x)
inc %x
}
dialog -x pm pm
query %nick
unset %nick
unset %message
}
on *:DIALOG:pm:sclick:8:{
msg %nick Query has been declined
dialog -x pm pm
unset %message
unset %nick
}
dialog block {
title "Blocked List"
size -1 -1 169 83
option dbu
text "Name", 1, 71 4 15 8
list 2, 3 13 161 49, size
button "Edit", 3, 24 66 37 12
button "Add", 4, 61 66 37 12
button "Remove", 5, 97 66 37 12
}
on *:DIALOG:block:init:*:{
var %x = 1
while ($ini(Block.ini,Pm,%x)) {
did -a block 2 $ini(Block.ini,Pm,%x)
inc %x
}
}
on *:DIALOG:block:sclick:3:{
var %x = $did(block,2).seltext
if (!%x) halt
dialog -ma blocke blocke
did -a blocke 1 %x
set $+(%,edit) %x
}
on *:DIALOG:block:sclick:4:{
var %x = $$?="Address Or Nickname"
writeini Block.ini Pm %x %x
did -a block 2 %x
}
on *:DIALOG:block:sclick:5:{
var %x = $did(block,2).seltext
remini Block.ini Pm %x
dialog -x block block
dialog -ma block block
}
dialog blocke {
title "Edit"
size -1 -1 105 36
option dbu
edit "", 1, 2 2 100 10
button "Ok", 2, 12 15 37 12
button "Cancel", 3, 49 15 37 12, cancel
}
on *:DIALOG:blocke:sclick:3:{ unset $+(%,edit) }
on *:DIALOG:blocke:sclick:2:{
remini Block.ini Pm $($+(%,edit),2) $($+(%,edit),2)
writeini Block.ini Pm $did(blocke,1) $did(blocke,1)
unset $+(%,edit)
dialog -x blocke blocke
dialog -x block block
dialog -ma block block
}
dialog allow {
title "Allowed List"
size -1 -1 169 83
option dbu
text "Name", 1, 71 4 15 8
list 2, 3 13 161 49, size
button "Edit", 3, 24 66 37 12
button "Add", 4, 61 66 37 12
button "Remove", 5, 97 66 37 12
}
on *:DIALOG:allow:init:*:{
var %x = 1
while ($ini(Block.ini,Allow,%x)) {
did -a allow 2 $ini(Block.ini,Allow,%x)
inc %x
}
}
on *:DIALOG:allow:sclick:3:{
var %x = $did(allow,2).seltext
if (!%x) halt
dialog -ma allowe allowe
did -a allowe 1 %x
set $+(%,edit) %x
}
on *:DIALOG:allow:sclick:4:{
var %x = $$?="Address Or Nickname"
writeini Block.ini Allow %x %x
did -a allow 2 %x
}
on *:DIALOG:allow:sclick:5:{
var %x = $did(allow,2).seltext
if (!%x) halt
remini Block.ini Allow %x
dialog -x allow allow
dialog -ma allow allow
}
dialog allowe {
title "Edit"
size -1 -1 105 36
option dbu
edit "", 1, 2 2 100 10
button "Ok", 2, 12 15 37 12
button "Cancel", 3, 49 15 37 12, cancel
}
on *:DIALOG:blocke:sclick:3:{ unset $+(%,edit) }
on *:DIALOG:allowe:sclick:2:{
remini Block.ini Allow $($+(%,edit),2) $($+(%,edit),2)
writeini Block.ini Allow $did(allowe,1) $did(allowe,1)
unset $+(%,edit)
dialog -x allowe allowe
dialog -x allow allow
dialog -ma allow allow
}
on *:OPEN:?:{
if ($readini(Block.ini,-n,Allow,$nick) || $readini(Block.ini,-n,Allow,$address($nick,2))) { halt }
elseif ($readini(Block.ini,-n,Pm,$nick) || $readini(Block.ini,-n,Pm,$address($nick,2))) {
msg $nick You have been blocked
close -m $nick
}
elseif (%message && $nick == %nick) { did -a pm 6 $1- }
else {
set %message $1-
set %nick $nick
msg $nick Please wait for me to accept your pm.
close -m $nick
dialog -ma pm pm
}
}
alias /list {
if ($1 == block) {
var %x = 1
while ($ini(Block.ini,Pm,%x)) {
echo $active %x $+ . $ini(Block.ini,Pm,%x)
inc %x
}
}
elseif ($1 == allow) {
var %x = 1
while ($ini(Block.ini,Allow,%x)) {
echo $active %x $+ . $ini(Block.ini,Allow,%x)
inc %x
}
}
}
alias /block {
writeini Block.ini Pm $1 $1
echo $active $1 has been added
}
alias /unblock {
if ($readini(Block.ini,-n,Pm,$1)) {
remini Block.ini Pm $1
echo $active $1 has been removed
}
else { echo $active $1 is not on the block list }
}
alias /allow {
writeini Block.ini Allow $1 $1
echo $active $1 is now allowed
}
alias /unallow {
if ($readini(Block.ini,-n,Allow,$1)) {
remini Block.ini Allow $1
echo $active $1 has been unallowed
}
else { echo $active $1 is not on the allow list }
}