Created
January 31, 2013 04:28
-
-
Save barik/4680192 to your computer and use it in GitHub Desktop.
mIRC ZNC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
alias -l config { | |
; Mandatory settings | |
; var %TIMESTAMP_PATTERN = ^\[(\d\d:\d\d:\d\d)\].*$ | |
var %TIMESTAMP_PATTERN = ^\[(\d\d:\d\d:\d\d)\].*$ | |
var %PLAYBACK_BEGIN = Buffer Playback... | |
var %PLAYBACK_END = Playback Complete. | |
var %VARIABLE_PREFIX = gbuffer | |
; Optional settings | |
; Indent wrapped lines | |
var %INDENT_LINES = $false | |
; Add the mode prefix to the nick (if possible) | |
var %PREFIX_NICKS = $true | |
; Are there other ON TEXT processors in place? | |
var %EXTERNAL_RENDERER = $false | |
; Possible values are NORMAL/LINESEP/NONE | |
var %STATUS_DISPLAY = NORMAL | |
; Make use of space-preserving spaces.dll | |
var %USE_SPACES_DLL = $true | |
return $eval( $+( %, $1 ), 2 ) | |
} | |
alias -l makeNick { | |
var %nick = $nick( $1, $2 ).pnick | |
if ( ( 0 == $len( %nick ) ) || ( $true != $config( PREFIX_NICKS ) ) ) %nick = $2 | |
return %nick | |
} | |
alias -l handleMessage { | |
var %chan = $1 | |
var %nick = $2 | |
var %color = $3 | |
var %pattern = $4 | |
var %text = $5 | |
var %pnick = $makeNick( %chan, %nick ) | |
; Buffered input | |
if ( $true == $eval( $+( %, $config( VARIABLE_PREFIX ), ., $cid, ., %chan, ., playback ), 2 ) ) { | |
noop $regex( %text, $config( TIMESTAMP_PATTERN ) ) ) | |
var %timestamp = $chr(91) $+ $regml( 1 ) $+ $chr(93) | |
var %params | |
if ( $config( INDENT_LINES ) ) %params = $+( i, $calc( $len( %timestamp ) + $len( %pnick ) + 4 ) ) | |
if ( %nick != $me ) %params = $+( %params, lmr ) | |
if ( 0 != $len( %params ) ) %params = $+( -, %params ) | |
if ( %nick == $me ) { | |
if ( $true == $config( USE_SPACES_DLL ) ) { | |
var %result | |
noop $regex( %text, ^.*? (.*)$ ) | |
noop $regsub( %pattern, &TEXT&, $regml( 1 ), %result ) | |
noop $regsub( %result , &NICK&, %pnick, %result ) | |
noop $dll( spaces.dll, echo, $color( own ) %params $chan %timestamp %result ) | |
} | |
else { | |
echo $color( own ) %params $chan %timestamp $replacecs( %pattern, &NICK&, %pnick, &TEXT&, $gettok( %text, 2-, 32 ) ) | |
} | |
} | |
else { | |
if ( $true == $config( USE_SPACES_DLL ) ) { | |
var %result | |
noop $regex( %text, ^.*? (.*)$ ) | |
noop $regsub( $regml( 1 ), /\\/g, \\\\, %result ) | |
noop $regsub( %pattern, &TEXT&, %result, %result ) | |
noop $regsub( %result , &NICK&, %pnick, %result ) | |
noop $dll( spaces.dll, echo, $color( %color ) %params $chan %timestamp %result ) | |
} | |
else { | |
echo $color( %color ) %params $chan %timestamp $replacecs( %pattern, &NICK&, %pnick, &TEXT&, $gettok( %text, 2-, 32 ) ) | |
} | |
} | |
} | |
else { | |
; Current events (optional) | |
if ( $true == $config( EXTERNAL_RENDERER ) ) return $false | |
if ( $true == $config( USE_SPACES_DLL ) ) { | |
var %result | |
noop $regsub( %pattern, &NICK&, %pnick, %result ) | |
noop $regsub( %text, /\\/g, \\\\, %text ) | |
noop $regsub( %result, &TEXT&, %text, %result ) | |
noop $dll( spaces.dll, echo, $color( %color ) $+( -i, $calc( $len( $timestamp ) + $len( %pnick ) + 5 ), lmrt ) $chan %result ) | |
} | |
else { | |
echo $color( %color ) $+( -i, $calc( $len( $timestamp ) + $len( %pnick ) + 4 ), lmrt ) $chan $replacecs( %pattern, &NICK&, %pnick, &TEXT&, %text ) | |
} | |
} | |
return $true | |
} | |
on ^*:text:*:#:{ | |
; Handle savebuff output | |
if ( $nick == *savebuff ) { | |
var %nick = $gettok( $2, 1, $asc( ! ) ) | |
var %timestamp = $asctime( $1, $timestampfmt ) | |
if ( $3 == MODE ) echo $color( mode ) $chan %timestamp * %nick sets mode: $4- | |
elseif ( $3 == JOIN ) echo $color( join ) $chan %timestamp * %nick ( $+ $gettok( $2, 2, $asc( ! ) ) $+ ) has joined $chan | |
elseif ( $3 == QUIT ) echo $color( quit ) $chan %timestamp * %nick ( $+ $gettok( $2, 2, $asc( ! ) ) $+ ) Quit ( $+ $4- $+ ) | |
elseif ( $3 == PART ) echo $color( part ) $chan %timestamp * %nick ( $+ $gettok( $2, 2, $asc( ! ) ) $+ ) has left $chan | |
elseif ( $3 == NICK ) echo $color( nick ) $chan %timestamp * %nick is now known as $4 | |
elseif ( $3 == KICK ) echo $color( kick ) $chan %timestamp * $2 was kicked by $gettok( $4, 1, $asc( ! ) ) ( $+ $5- $+ ) | |
else echo $color( erro ) $chan *** UNHANDLED LINE < $+ $1- $+ > | |
} | |
; Handle playback state notifications | |
elseif ( $nick == *** ) { | |
if ( $1- == $config( PLAYBACK_BEGIN ) ) { | |
set -e $+( %, $config( VARIABLE_PREFIX ), ., $cid, ., $chan, ., playback ) $true | |
} | |
elseif ( $1- == $config( PLAYBACK_END ) ) { | |
unset $eval( $+( %, $config( VARIABLE_PREFIX ), ., $cid, ., $chan, ., playback ), 1 ) | |
} | |
if ( $config( STATUS_DISPLAY ) == NORMAL ) { | |
echo $color( notice ) $chan *** $1- | |
} | |
elseif ( $config( STATUS_DISPLAY ) == LINESEP ) { | |
linesep $chan | |
} | |
} | |
; Handle usual input | |
else { | |
var %pattern = ^:.*? :(.*)$ | |
noop $regex( $rawmsg, %pattern ) | |
if ( $false == $handleMessage( $chan, $nick, normal, <&NICK&> &TEXT&, $regml( 1 ) ) ) return | |
} | |
halt | |
} | |
on ^*:action:*:#:{ | |
;noop $dll( spaces.dll, echo, $chan $rawmsg ) | |
var %pattern = ^:.*? :\x01ACTION (.*)\x01$ | |
noop $regex( $rawmsg, %pattern ) | |
if ( $true == $handleMessage( $chan, $nick, action, * &NICK& &TEXT&, $regml( 1 ) ) ) halt | |
} | |
on ^*:notice:*:#:{ | |
;noop $dll( spaces.dll, echo, $chan $rawmsg ) | |
var %pattern = ^:.*? :(.*)$ | |
noop $regex( $rawmsg, %pattern ) | |
if ( $true == $handleMessage( $chan, $nick, notice, -&NICK&- &TEXT&, $regml( 1 ) ) ) halt | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment