a simple dialog away script with multi server, pager and logger
alias awaysystem {
dialog -m _away _away
if (%away.logger == 1) { did -c _away 3 }
if (%away.pager == 1) { did -c _away 4 }
if (%away.multi == 1) { did -c _away 5 }
}
dialog _away {
title "Away System"
size -1 -1 198 70
option pixels notheme
edit "", 2, 46 6 151 20
check "Logger", 3, 1 26 53 17
check "Pager", 4, 59 26 52 17
check "Multi-Server", 5, 115 26 81 17, disable
button "Cancel", 6, 66 45 65 25, cancel flat
button "Set Away", 7, 0 45 65 25, ok flat
button "Set Back", 8, 132 45 65 25, ok flat
text "Reason:", 1, 3 6 40 17
}
on *:dialog:_away:sclick:7:{
set %away.reason $did(2)
set %away.logger $did(3).state
set %away.pager $did(4).state
set %away.multi $did(5).state
_away
}
on *:dialog:_away:sclick:8:{
_back
}
alias _away {
if (%away.state == Here) {
if (%away.multi == 1) {
set %away.time $ctime
set %away.state Gone
scid -a nick $me $+ `Away
scid -a ame is away [ %away.reason ] at $asctime(h:nn:sstt) [ Logger: $replace(%away.logger,0,Off,1,On) \ Pager: $replace(%away.pager,0,Off,1,On) ]
scid -a away I'm Away!!
halt
}
if (%away.multi == 0) {
set %away.time $ctime
set %away.state Gone
nick $me $+ `Away
ame is away [ %away.reason ] at $asctime(h:nn:sstt) [ Logger: $replace(%away.logger,0,Off,1,On) \ Pager: $replace(%away.pager,0,Off,1,On) ]
away I'm Away!!
halt
}
}
if (%away.state == Gone) {
if (%away.multi == 1) {
scid -a ame is away [ %away.reason ] at $asctime(h:nn:sstt) [ Logger: $replace(%away.logger,0,Off,1,On) \ Pager: $replace(%away.pager,0,Off,1,On) ]
halt
}
if (%away.multi == 0) {
ame is away [ %away.reason ] at $asctime(h:nn:sstt) [ Logger: $replace(%away.logger,0,Off,1,On) \ Pager: $replace(%away.pager,0,Off,1,On) ]
halt
}
}
}
alias _back {
if (%away.state == Gone) {
if (%away.multi == 1) {
scid -a ame is back [ %away.reason ] gone $replace($duration($calc($ctime - %away.time)),wks,w,wk,w,days,d,day,d,hrs,h,hr,h,mins,m,min,m,secs,s,sec,s)
set %away.state Here
scid -a nick $remove($me,`Away)
unset %away.time
unset %away.reason
scid -a away
halt
}
if (%away.multi == 0) {
ame 14is back [ %away.reason ] gone $replace($duration($calc($ctime - %away.time)),wks,w,wk,w,days,d,day,d,hrs,h,hr,h,mins,m,min,m,secs,s,sec,s)
set %away.state Here
nick $remove($me,`Away)
unset %away.time
unset %away.reason
away
halt
}
}
if (%away.state == Here) {
echo -a You're Not Away!
halt
}
}
ctcp *:page:*: {
if (%away.state == Yes) {
if (%away.pager == 1) {
notice $nick Your page was received.
window +L @Pager
echo @Pager $timestamp PAGE: $nick ( $+ $address $+ )
echo @Pager On: $asctime(dddd) $+ , $asctime(mmmm d) $+ , $asctime(yyyy) $+ , $asctime(h:nn:ss TT)
echo @Pager Message: $2-
echo @Pager -
write $scriptdir\page.txt paged by : $nick $address $fulldate MSG : $2-}
}
}
}
on *:text:*:#: {
if (%away.state == Gone) {
if (%away.logger == 1) {
if ($me isin $1-) {
if (Serv !isin $nick) || ($nick != Global) {
write @Logger: $+ $asctime(mm.dd.yy) $+ .txt $asctime(hh:nn:sstt) + $+ $nick $+ + : $replace($1-,$me,[[ $+ $me $+ ]])
notice $nick is away [ %away.reason ] at $asctime(h:nn:sstt) [ Logger: $replace(%away.logger,0,Off,1,On) \ Pager: $replace(%away.pager,0,Off,1,On) ]
}
}
}
if (%away.logger == 0) {
if ($me isin $1-) {
if (Serv !isin $nick) || ($nick != Global) {
notice $nick is away [ %away.reason ] at $asctime(h:nn:sstt) [ Logger: $replace(%away.logger,0,Off,1,On) \ Pager: $replace(%away.pager,0,Off,1,On) ]
}
}
}
}
}
on *:LOAD: {
set %away.pager 1
set %away.logger 1
set %away.multi 1
set %away.state Here
}
on *:UNLOAD: {
unset %away.*
}
menu * {
Away system:awaysystem
}