dialog away2 {
title "away system"
size -1 -1 195 111
text "reason¬", 1, 20 20 41 15
edit "", 2, 66 18 110 20, autohs
button "away", 3, 17 81 75 17
text "interval¬", 5, 19 44 45 15
edit "", 6, 66 42 63 20
box "setup", 7, 5 -1 185 108
text "hours", 8, 134 44 40 16
button "cancel", 9, 103 81 75 17, cancel
box "", 10, 7 65 183 8
}
alias awaysys { if (!%away) dialog -mod away2 away2 | if (%away) awayback }
;dialog events
on *:dialog:away2:init:0: {
if (%away == on) {
did -a $dname 2 %away.r
did -a $dname 6 $calc(%away.timer * 60)
did -b $dname 4
}
}
on *:dialog:away2:sclick:3: {
if (!$server) halt
if (!$did(2).text) halt
if (!$did(6).text) halt
set %away.r $did(2).text
set %away.timer $calc($did(away2,6).text * 60)
set %away on
set %left left; $time(h:nnt)
ame now idle: %away.r %left
.away %away.r
.timeraway 0 $calc(%away.timer * 60) stillafk
set %away.leave $ctime
dialog -x away2 away2
}
alias awayback {
%away.back = $dur($calc($ctime - %away.leave))
.timeraway off
if ($server) .away
unset %away
if ($server) && ($chan(0)) ame has returned: %away.r %away.back
unset %away.*
unset %left
}
alias stillafk {
%stillafk.dur = $dur($calc($ctime - %away.leave))
ame still idle: %away.r elapsed: %stillafk.dur %left
}
alias dur {
if ($1 < 60) { .return $round($1-,0) $+ s }
else { return $replace($duration($1-),wk,w,secs,s,mins,m,hrs,h,days,d,wks,w,sec,s,min,m,hr,h,day,d) }
}