rendered paste bodydialog away {
title "AwayScript by Marius"
size -1 -1 202 124
option dbu
box "Away // Back", 1, 1 0 200 77
button "Away", 3, 46 62 37 12
button "Back", 4, 90 62 37 12, disable
text "Away Reason:", 5, 5 10 35 8
text "Away Message:", 2, 5 20 38 8
text "Return Message:", 6, 5 30 41 8
check "Inform channels when you are away/back", 7, 5 40 115 10
radio "AMSG", 8, 20 50 30 10, disable
radio "AME", 9, 50 50 30 10, disable
box "Channel Ignorer", 10, 1 125 200 81
check "Do not message ignored channels", 11, 85 140 95 10
list 12, 5 133 70 70, size
button "Add Channel", 13, 85 160 37 12
button "Del Channel", 14, 85 180 37 12
box "Highlight Control", 15, 1 78 55 45
check "Log highlights", 16, 5 95 50 10
check "Log PM's", 17, 5 85 50 10
button "Add", 18, 68 90 15 10
button "Del", 19, 68 105 15 10
list 20, 93 83 105 38, size
box "Highlights", 21, 56 78 145 45
edit "", 22, 50 29 100 10, autohs
edit "", 23, 50 9 100 10, autohs
edit "", 24, 50 19 100 10, autohs
link "More", 25, 150 10 15 8
link "More", 26, 150 20 15 8
link "More", 27, 150 30 15 8
}
dialog away_ext {
title "Away Help"
size -1 -1 154 42
option dbu
link "Current Time", 1, 2 3 33 8
link "Away Reason", 2, 37 3 34 8
link "Away Duration", 3, 73 3 36 8
button "Done", 4, 49 27 37 12, ok
link "Away Start Time", 5, 111 3 40 8
link "Highlight Log Status", 6, 2 14 50 8
link "PM Log Status", 7, 55 14 35 8
}
on *:DIALOG:away_ext:sclick:*: {
if ($did == 1) { .did -a away %away.help $chr(13) $+ &ctime }
if ($did == 2) { .did -a away %away.help $chr(13) $+ &reason }
if ($did == 3) { .did -a away %away.help $chr(13) $+ &duration }
if ($did == 5) { .did -a away %away.help $chr(13) $+ &stime }
if ($did == 6) { .did -a away %away.help $chr(13) $+ &hl }
if ($did == 7) { .did -a away %away.help $chr(13) $+ &pm }
}
on *:DIALOG:away:edit:22,23,24: {
if ($did == 22) {
.set %away.msg.back $did($dname,22)
}
if ($did == 23) {
.set %away.reason $did($dname,23)
}
if ($did == 24) {
.set %away.msg.away $did($dname,24)
}
}
on *:DIALOG:away:init:0: {
if (%away.amsg) { .did -c $dname 8 }
else { .did -c $dname 9 }
if (%away.inform) { .did -c $dname 7 | .did -e $dname 8,9 | .dialog -s away $dialog(away).x $dialog(away).y 410 415 }
var %a = 1
while (%a <= $lines(away.highilght.txt)) { .did -a $dname 20 $read(away.highlight.txt,%a) | inc %a }
var %a = 1
while (%a <= $lines(away.channelignore.txt)) { .did -a $dname 12 $read(away.channelignore.txt,%a) | inc %a }
if (%away.ig) { .did -c $dname 11 }
if (%away.log.pm) { .did -c $dname 17 }
if (%away.log.hl) { .did -c $dname 16 }
.did -a $dname 22 %away.msg.back
.did -a $dname 23 %away.reason
.did -a $dname 24 %away.msg.away
}
on *:DIALOG:away:sclick:*: {
if ($did == 7) {
.set %away.inform $iif($did($dname,7).state == 1,$true,$false)
.dialog -s away $dialog(away).x $dialog(away).y 410 $iif($did($dname,7).state == 1,415,250)
if (%away.inform) { .did -e $dname 8,9 }
else { .did -b $dname 8,9 }
}
if ($did == 8) { .set %away.amsg $true | .set %away.ame $false }
if ($did == 9) { .set %away.ame $true | .set %away.amsg $false }
if ($did == 17) { .set %away.log.pm $iif($did($dname,17).state == 1,$true,$false) }
if ($did == 16) { .set %away.log.hl $iif($did($dname,16).state == 1,$true,$false) }
if ($did == 18) {
var %nhl = $$?="Enter a highlight string/word"
.write away.highlight.txt %nhl
.did -a $dname 20 %nhl
.did -c $dname 20 $lines(away.highlight.txt)
}
if ($did == 19) {
if (!$did($dname,20).seltext) { halt }
.write $+(-dl,$did($dname,20).sel) away.highlight.txt
.did -d $dname 20 $did($dname,20).sel
}
if ($did == 11) { .set %away.ig $iif($did($dname,11).state == 1,$true,$false) }
if ($did == 13) {
var %nci = $$?="Enter channel to ignore"
.write away.channelignore.txt %nci
.did -a $dname 12 %nci
}
if ($did == 14) {
if (!$did($dname,12).seltext) { halt }
.write $+(-dl,$did($dname,12).sel) away.channelignore.txt
.did -d $dname 20 $did($dname,20).sel
}
if ($did == 25) { .set %away.help 23 | .dialog -mdo away_ext away_ext }
if ($did == 26) { .set %away.help 24 | .dialog -mdo away_ext away_ext }
if ($did == 27) { .set %away.help 22 | .dialog -mdo away_ext away_ext }
if ($did == 3) {
if ($away) { halt }
.did -c $dname 4
.did -b $dnaem 3
.setaway %away.reason
}
if ($did == 4) {
if (!$away) { halt }
.did -c $dname 3
.did -b $dname 4
.setaway
}
}
alias same {
var %a = 1
while (%a <= $chan(0)) {
if ($read(away.channelignore.txt,s,$1)) { describe $chan(%a) $2- }
inc %a
}
}
alias samsg {
var %a = 1
while (%a <= $chan(0)) {
if ($read(away.channelignore.txt,s,$1)) { msg $chan(%a) $2- }
inc %a
}
}
menu * {
AwaySystem
.Open AwaySystem:.dialog -md away away
.Logs
..Show PM Logs:.awaylog pm
..Show Highlight Logs:.awaylog hl
.-
. $iif($away,Back,Away) :.setaway
}
alias awaylog {
if (!$window(@away.log)) { .window @away.log }
var %sf = $iif($1 == hl,away.log.hl.txt,away.log.pm.txt),%a = 1
while (%a <= $lines(%sf)) {
.aline @away.log $read(%sf,%a)
inc %a
}
}
alias setaway {
if ($away) {
if (%away.inform) {
if (%away.amsg) { $iif(%away.ig,samsg,amsg) $away.p(%away.msg.back) }
if (%away.ame) { $iif(%away.ig,same,ame) $away.p(%away.msg.back) }
}
.away
}
if (!$away) {
if (!$1) { .set %away.reason $$?="Enter an away reason"> }
else { .set %away.reason $1- }
if (%away.inform) {
if (%away.amsg) { $iif(%away.ig,samsg,amsg) $away.p(%away.msg.away) }
if (%away.ame) { $iif(%away.ig,same,ame) $away.p(%away.msg.away) }
}
if ($exists(away.log.pm.txt) || $exists(away.log.hl.txt)) { var %lc = $input(Would you like ot remove old log files?,y,Away Log Management) }
if (%lc) {
if ($exists(away.log.pm.txt)) { .remove away.log.pm.txt }
if ($exists(away.log.hl.txt)) { .remove away.log.hl.txt }
}
.set %away.start $fulldate
.away $away.p(%away.reason)
}
}
alias away {
if (!$1) { .dialog -md away away }
.setaway $1-
}
alias away.p {
var %ret = $1-
var %ret = $replace(%ret,&ctime,$time)
var %ret = $replace(%ret,%reason,%away.reason)
var %ret = $replace(%ret,&duration,$duration($awaytime))
var %ret = $replace(%ret,&stime,%away.start)
var %ret = $replace(%ret,&hl,$iif(%away.log.hl,On,Off))
var %ret = $replace(%ret,&pm,$iif(%away.log.pm,On,Off))
return %ret
}
on ^*:TEXT:*:?: {
if (!$away || !%away.log.pm) { return }
.write away.log.pm.txt $nick - $fulldate - $1-
.msg $nick I am currently away ( $+ %away.reason $+ ) - Your message has been logged.
.close -m $nick
haltdef
}
on *:TEXT:*:#: {
if (!$away || !%away.log.hl) { halt }
var %a = 1
while (%a <= $lines(away.highlight.txt)) {
if ($read(away.highlight.txt,%a) isin $1-) { .write away.log.hl.txt $chan - $nick - $fulldate - $1- | break }
inc %a
}
}