;Check that chan exists (and you're in it)
;Customize output format
;Silence relay start on auto day switch
;Network connects/disconnects
;Allow color stripping
;Auto-start on startup/reconnect
;Easy way to start/stop relay
;Switches for relay option overrides (make it easier to script with)
;Add color regex (logger option)
alias ffxi_relay {
if ($1 == off) {
.timerffxi_relay* off
unset %ffxi_relay*
echo -a Relay Stopped
return
}
if (!$readini($options,Options,RelayChar)) {
if (!$isid) echo -a Configuration File Error: No character specified
return
}
if (!$readini($options,Options,LogDirectory)) {
if (!$isid) echo -a Configuration File Error: No log path specified
return
}
var %logfiledir = $readini($options,Options,LogDirectory)
if ($right(%logfiledir,1) !isin \/) %logfiledir = %logfiledir $+ \
set %ffxi_relay_file $+(%logfiledir,$readini($options,Options,RelayChar),_,$asctime($ctime,yyyy.mm.dd),.log)
set %ffxi_relay_line $iif($exists(%ffxi_relay_file),$lines(%ffxi_relay_file),0)
echo -a Relay Started
.timerffxi_relay_check 0 1 ffxi_relay_check
}
alias -l options return $scriptdirffxi_relay.ini
alias -l ffxi_relay_colorcheck return $iif(c isin $chan($1).mode,$strip($2-,c),$2-)
alias -l ffxi_relay_check {
;%ct = color and timestamp regex. may change in logger versions
var %ct = (?:\[\d\d:\d\d:\d\d\])?
var %ffxi_relay_chan = $readini($options,Channel,RelayChannel)
while ($read(%ffxi_relay_file,r,/^ $+ %ct $+ <([a-z]+)>\s*(.*)$/i,%ffxi_relay_line)) {
%ffxi_relay_line = $calc($readn + 1)
if (%ffxi_relay_chan) msg $v1 $ffxi_relay_colorcheck($v1,$+($chr(2),$regml(1),$chr(2),:,$chr(32),$replace($regml(2),ï',09<,ï $+ $chr(40),04>)))
}
if (($regex(%ffxi_relay_file,/_(.*).log/)) && ($regml(1) != $asctime($ctime,yyyy.mm.dd))) ffxi_relay
}