menu channel {
Haiti Announce
.$iif($timer(haiti),$style(2),$iif($chan(%haiti.chan),$style(1))) set channel $iif(%haiti.chan,$+([,$v1,])) : {
set %haiti.chan $input(Enter the channel to announce at:,eog,Set channel,%haiti.chan)
}
.$iif($timer(haiti),$style(2),$iif((%haiti.delay isnum 1-),$style(1))) set delay $iif(%haiti.delay,$+([,$duration($v1),])): {
set %haiti.delay $duration($iif(($input(Enter the announcement delay (e.g. X minutes):,eog,Set delay,$duration(%haiti.delay)) isnum 1-),$! min,$!))
}
.$iif($timer(haiti),$style(2),$iif(%haiti.msg,$style(1))) set message $iif(%haiti.msg,$+([,$len($v1) chars,])): {
set %haiti.msg $input(Enter announcement message:,eog,Set message,%haiti.msg)
}
.$iif(!$timer(haiti),$iif(!$chan(%haiti.chan) || (%haiti.delay !isnum 1-) || (!%haiti.msg),$style(2)) start,stop) announcement now : {
haiti $iif($timer(haiti),stop,start)
}
}
alias -l haiti {
if ($1 == stop) {
.timerhaiti off
echo -a * Announcement stopped.
}
else {
echo -a * Announcement started (delay: $duration(%haiti.delay) $+ )
if ($me ison %haiti.chan) { msg $v2 %haiti.msg }
.timerhaiti 0 %haiti.delay if ( $!me ison % $+ haiti.chan ) msg $!v2 $safe2(%haiti.msg)
}
}
alias -l safe2 { bset -t &a 1 $1- | return $!regsubex( $bvar(&a,1-) ,/(\d+)(?: |$)/g,$chr(\1)) }
on *:unload: { unset %haiti.* }