|
|
Line 1: |
Line 1: |
| == Usage == | | <noinclude> |
| If you want real timestamps you should use these settings for your user:
| | <!-- |
| | | ====================================================================== |
| TimestampFormat = [%H:%M:%S]
| | For location codes, please refer to https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 |
| AppendTimestamp = false
| | Use exceptions, most notably UK instead of GB, listed here https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Exceptional_reservations |
| PrependTimestamp = true
| | ====================================================================== |
| | | Providers are sorted by "Date Started", which is either the date in which the provider officially started delivering services, the date |
| It currently supports Channel, Query, Wallops, Notice and Servernotices
| | their domain was registered (if reliable information), or the date added to the ZNC table list. |
| | | --> |
| == Format == | | </noinclude>[<span class="plain links">[{{fullurl:Template:Providers/table|action=edit}} Edit data]</span>] |
| | | {| class="wikitable sortable" border="1" |
| strftime arguments can be used for the timestamps, more details and arguments can be found at opengroup.org[http://opengroup.org/onlinepubs/007908799/xsh/strftime.html].
| | ! rowspan="2" | Provider |
| | | ! colspan="2" | Max Networks per User |
| %a the locale's abbreviated weekday name.
| | ! rowspan="2" | ZNC Version |
| %A - the locale's full weekday name.
| | ! rowspan="2" | Language |
| %b - the locale's abbreviated month name.
| | ! rowspan="2" | Connectivity<br><small style="font-weight:normal">(to destination networks)</small> |
| %B - the locale's full month name.
| | ! rowspan="2" class="unsortable" | IRC Support |
| %c - the locale's appropriate date and time representation.
| | ! rowspan="2" | Date Started |
| %C - the century number (the year divided by 100 and truncated to an integer) as a decimal number [00-99].
| | ! rowspan="2" class="unsortable" | ZNC locations<br><small style="font-weight:normal">([[wikipedia:ISO 3166-1 alpha-2#Officially_assigned_code_elements|country codes]], using [[wikipedia:ISO 3166-1 alpha-2#Exceptional_reservations|exceptions]])</small> |
| %d - the day of the month as a decimal number [01,31].
| | ! rowspan="2" class="unsortable" | Notes |
| %D - same as %m/%d/%y.
| | |- |
| %e - the day of the month as a decimal number [1,31]; a single digit is preceded by a space.
| | ! Default |
| %h - same as %b.
| | ! Premium |
| %H - the hour (24-hour clock) as a decimal number [00,23].
| | |- |
| %I - the hour (12-hour clock) as a decimal number [01,12].
| | |- |
| %j - the day of the year as a decimal number [001,366].
| | |[https://bnc4free.com BNC4FREE] |
| %m - the month as a decimal number [01,12].
| | | 3 |
| %M - the minute as a decimal number [00,59].
| | | |
| %n - a newline character.
| | | 1.8.1* |
| %p - the locale's equivalent of either a.m. or p.m.
| | | English |
| %r - the time in a.m. and p.m. notation; in the POSIX locale this is equivalent to %I:%M:%S %p.
| | | both |
| %R - the time in 24 hour notation (%H:%M).
| | | {{irc|chat.freenode.net|bnc4free}} |
| %S - the second as a decimal number [00,61].
| | | <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2009-01-05 |
| %t - a tab character.
| | | <abbr title="United Kingdom">UK</abbr> |
| %T - the time (%H:%M:%S).
| | | |
| %u - the weekday as a decimal number [1,7], with 1 representing Monday.
| | |- |
| %U - the week number of the year (Sunday as the first day of the week) as a decimal number [00,53].
| | |[https://www.xshellz.com xShellz] |
| %V - the week number of the year (Monday as the first day of the week) as a decimal number [01,53]. If the week containing 1 January has four or more
| | | 2 |
| days in the new year, then it is considered week 1. Otherwise, it is the last week of the previous year, and the next week is week 1.
| | | data-sort-value="30" | 12, 20, or 30 |
| %w - the weekday as a decimal number [0,6], with 0 representing Sunday.
| | | 1.6.1 |
| %W - the week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday
| | | English |
| are considered to be in week 0.
| | | both |
| %x - the locale's appropriate date representation.
| | | {{irc|chat.freenode.net|xShellz}} |
| %X - the locale's appropriate time representation.
| | | <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2009-03-01 |
| %y - the year without century as a decimal number [00,99].
| | | <abbr title="United States of America">US</abbr>, <abbr title="United Kingdom">UK</abbr> |
| %Y - the year with century as a decimal number.
| | | |
| %Z - the timezone name or abbreviation, or by no bytes if no timezone information exists.
| | |- |
| %% - %.
| | |[https://lunarbnc.net LunarBNC] |
| | | | unlimited |
| == Scripts ==
| | | |
| === KVIrc === | | | 1.8.0* |
| This script '''requires''' these settings for your user:
| | | English |
| | | | IPv6 <small>(IPv4 requires Premium)</small> |
| TimestampFormat = {%H:%M:%S}
| | | {{irc|irc.lunarirc.net|lunarbnc}} |
| AppendTimestamp = false
| | | <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2014-09-03 |
| PrependTimestamp = true
| | | <abbr title="Germany">DE</abbr> |
| | | | |
| and here is it:
| | |- |
| | | |[https://znc.bg ZNC.BG] |
| event(OnWallops,zncid)
| | | 1 |
| {
| | | |
|
| | | 1.6.3* |
| %timefront = $str.lefttofirst($3,$char(32))
| | | English |
| %timeappend = $str.rightfromlast($3,$char(32))
| | | both |
|
| | | {{irc|irc.v.bg|znc}} |
|
| | | <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2016-01-25 |
|
| | | <abbr title="Bulgaria">BG</abbr>, <abbr title="Czech Republic">CZ</abbr>, <abbr title="Germany">DE</abbr>, <abbr title="Italy">IT</abbr> |
| if($str.matchnocase(\{**\:**\:**\},%timefront))
| | | |
| {
| | |- |
| %time = %timefront
| | |[https://technofaq.org TechnoFAQZNC] |
| %msg = $str.rightfromfirst($3,\})
| | | 3 (more upon request) |
| #echo %timefront front
| | | 10 (more upon request) |
| } else {
| | | 1.8.1 |
| if($str.matchnocase(\{**\:**\:**\},%timeappend))
| | | English |
| {
| | | IPv6 <small>(IPv4 requires Premium)</small> |
| %time = %timeappend
| | | {{irc|chat.freenode.net|TechnoFAQZNC}} |
| %msg = $str.lefttofirst($3,\{)
| | | <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2017-11-02 |
| #echo %timeappend append
| | | <abbr title="France">FR</abbr>, <abbr title="Norway">NO</abbr> |
| }
| | | |
| }
| | |- |
|
| | |[https://pastebin.com/raw/eDaeLZhn bnc4you] |
|
| | | 4 (freenode + 3 choices) |
| if($str.matchnocase(\{**\:**\:**\},%time))
| | | |
| {
| | | 1.8.1 |
| echo -n -i=$msgtype(Wallops) $k($option(uinttimestampforeground))%time$k WALLOPS von $0 \[$1\@$2\] $str.rightfromfirst($3,\})
| | | English |
| }
| | | IPv4-only |
| halt
| | | {{irc|chat.freenode.net|#bnc4you}} |
| }
| | | <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2018-03-03 |
|
| | | <abbr title="Turkey">TR</abbr> |
|
| | | |
| event(OnServerNotice,zncid)
| | |- |
| {
| | |[https://ircnow.org IRCNow] |
| %chan = $window.list(channel,$ic)
| | | 100 (more upon request) |
| %con = $window.list(console,$ic)
| | | |
| %x = 0
| | | 1.7.4 |
| while(%x < %chan[]#)
| | | English / Chinese / Urdu / Tamil / Spanish |
| {
| | | both |
| if($window.hasUserFocus(%chan[%x]))
| | | {{irc|irc.ircnow.org|ircnow}} |
| {
| | | <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2019-08-26 |
| %outchan = %con
| | | <abbr title="Luxembourg">LU</abbr>, <abbr title="United States of America">US</abbr> |
| #echo -w=%outchan $0 $3 %outchan
| | | <small>hostile to LGBT</small> |
| break;
| | |- |
| } else {
| | |[https://pastebin.com/raw/tqTixMFS QualityZNC] |
| %outchan = %con
| | | 2 (freenode + 1 choice) |
| }
| | | |
| if(%x < %chan[]#)
| | | 1.8.0 |
| {
| | | English |
| %x = $(%x + 1)
| | | both |
| } else {
| | | {{irc|chat.freenode.net|#QualityZNC}} |
| break;
| | | <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2020-02-09 |
| }
| | | <abbr title="Germany">DE</abbr> |
| }
| | | |
| %timefront = $str.lefttofirst($1,$char(32))
| | |} |
| %timeappend = $str.rightfromlast($1,$char(32))
| |
|
| |
| if($str.matchnocase(\{**\:**\:**\},%timefront))
| |
| {
| |
| %time = %timefront
| |
| %msg = $str.rightfromfirst($1,\})
| |
| #echo %timefront front
| |
| } else {
| |
| if($str.matchnocase(\{**\:**\:**\},%timeappend))
| |
| {
| |
| %time = %timeappend
| |
| %msg = $str.lefttofirst($1,\{)
| |
| #echo %timeappend append
| |
| }
| |
| }
| |
|
| |
| if($str.matchnocase(\{**\:**\:**\},%time))
| |
| {
| |
| echo -n -w=%con -i=$msgtype(ServerNotice) $k($option(uinttimestampforeground))%time$k [$0] $str.rightfromfirst($1,\})
| |
| halt
| |
| }
| |
| }
| |
|
| |
| event(OnQueryNotice,zncid)
| |
| {
| |
| %chan = $window.list(channel,$ic)
| |
| %con = $window.list(console,$ic)
| |
| %x = 0
| |
| while(%x < %chan[]#)
| |
| {
| |
| if($window.hasUserFocus(%chan[%x]))
| |
| {
| |
| %outchan = %chan[%x]
| |
| #echo -w=%outchan $0 $3 %outchan
| |
| break;
| |
| } else {
| |
| %outchan = %con
| |
| }
| |
| if(%x < %chan[]#)
| |
| {
| |
| %x = $(%x + 1)
| |
| } else {
| |
| break;
| |
| }
| |
| }
| |
|
| |
| %timefront = $str.lefttofirst($3,$char(32))
| |
| %timeappend = $str.rightfromlast($3,$char(32))
| |
|
| |
|
| |
| if($str.matchnocase(\{**\:**\:**\},%timefront))
| |
| {
| |
| %time = %timefront
| |
| %msg = $str.rightfromfirst($3,\})
| |
| #echo %timefront front
| |
| } else {
| |
| if($str.matchnocase(\{**\:**\:**\},%timeappend))
| |
| {
| |
| %time = %timeappend
| |
| %msg = $str.lefttofirst($3,\{)
| |
| #echo %timeappend append
| |
| }
| |
| }
| |
|
| |
|
| |
| if($str.matchnocase(\{**\:**\:**\},%time))
| |
| {
| |
| echo -n -w=%outchan -i=$msgtype(QueryNotice) $k($option(uinttimestampforeground))%time$k *$0* $str.rightfromfirst($3,\})
| |
| halt
| |
| }
| |
| }
| |
|
| |
| event(OnQueryMessage,zncid)
| |
| {
| |
| %timefront = $str.lefttofirst($3,$char(32))
| |
| %timeappend = $str.rightfromlast($3,$char(32))
| |
|
| |
| if($str.matchnocase(\{**\:**\:**\},%timefront))
| |
| {
| |
| %time = %timefront
| |
| %msg = $str.rightfromfirst($3,\})
| |
| #echo %timefront front
| |
| } else {
| |
| if($str.matchnocase(\{**\:**\:**\},%timeappend))
| |
| {
| |
| %time = %timeappend
| |
| %msg = $str.lefttofirst($3,\{)
| |
| #echo %timeappend append
| |
| }
| |
| }
| |
|
| |
| if($str.matchnocase(\{**\:**\:**\},%time))
| |
| {
| |
| echo -n -i=$msgtype(ChannelPrivateMessage) $k($option(uinttimestampforeground))%time$k $option(stringextendedprivmsgprefix)%status$0$option(stringextendedprivmsgpostfix)%msg
| |
| halt
| |
| }
| |
| }
| |
|
| |
| event(OnChannelMessage,zncid)
| |
| {
| |
| if(%Win{$window} > 0)
| |
| {
| |
| %timefront = $str.lefttofirst($3,$char(32))
| |
| %timeappend = $str.rightfromlast($3,$char(32))
| |
| if(($option(boolshowchanneluserflaginprivmsgview)) && ($chan.ison($0)) && ($chan.isvoice($0)))%status = $chan.getflag($0)
| |
|
| |
| if($str.matchnocase(\{**\:**\:**\},%timefront))
| |
| {
| |
| %time = %timefront
| |
| %msg = $str.rightfromfirst($3,\})
| |
| #echo %timefront front
| |
| } else {
| |
| if($str.matchnocase(\{**\:**\:**\},%timeappend))
| |
| {
| |
| %time = %timeappend
| |
| %msg = $str.lefttofirst($3,\{)
| |
| #echo %timeappend append
| |
| }
| |
| }
| |
|
| |
| if($str.matchnocase(\{**\:**\:**\},%time))
| |
| {
| |
| if($str.containsnocase(%msg,$me))
| |
| {
| |
| echo -n -i=$msgtype(Highlight) $k($option(uinttimestampforeground))%time$k $option(stringextendedprivmsgprefix)%status$0$option(stringextendedprivmsgpostfix) %msg
| |
| halt
| |
| }else{
| |
| echo -n -i=$msgtype(ChannelPrivateMessage) $k($option(uinttimestampforeground))%time$k $option(stringextendedprivmsgprefix)%status$0$option(stringextendedprivmsgpostfix) %msg
| |
| halt
| |
| }
| |
| }
| |
| }
| |
|
| |
| if($0 == "***")
| |
| {
| |
|
| |
| if($3 == "Buffer Playback...")
| |
| {
| |
| %Win{$window} = 1
| |
| }
| |
| if($3 == "Playback Complete.")
| |
| {
| |
| %Win{$window} = 0
| |
| }
| |
| }
| |
| }
| |
|
| |
| event(OnAction,zncid)
| |
| {
| |
| if(%Win{$window} > 0)
| |
| {
| |
|
| |
| %timefront = $str.lefttofirst($4,$char(32))
| |
| %timeappend = $str.rightfromlast($4,$char(32))
| |
|
| |
| if($str.matchnocase(\{**\:**\:**\},%timefront))
| |
| {
| |
| %time = %timefront
| |
| %msg = $str.rightfromfirst($4,\})
| |
| #echo %timefront front
| |
| } else {
| |
| if($str.matchnocase(\{**\:**\:**\},%timeappend))
| |
| {
| |
| %time = %timeappend
| |
| %msg = $str.lefttofirst($4,\{)
| |
| #echo %timeappend append
| |
| }
| |
| }
| |
|
| |
| if($chan.ison($0))%status = $chan.getflag($0)
| |
| if($str.matchnocase(\{**\:**\:**\},%time))
| |
| {
| |
| #%time = $date([H:M:S])
| |
| echo -n -i=$msgtype(Action) $k($option(uinttimestampforeground))%time$k $0 %msg
| |
| #echo $0 $3
| |
| halt
| |
| }
| |
| }
| |
| }
| |
| | |
| === mIRC ===
| |
| This script '''requires''' these settings for your user:
| |
| | |
| TimestampFormat = [%H:%M:%S]
| |
| AppendTimestamp = false
| |
| PrependTimestamp = true
| |
| | |
| Otherwise you have to adjust the regex pattern in the script that grabs the timestamp.
| |
| | |
| It handles
| |
| * Channel messages
| |
| * Savebuff output
| |
| * Channel notices
| |
| * Channel actions
| |
| | |
| ==== Configuration (optional) ====
| |
| If lines are too long to fit the window width they are wrapped so that the wrapped lines will line up after the nick. To disable that behavior, set <tt>%INDENT_LINES</tt> to <tt>$false</tt>.
| |
| | |
| Nicks will be prefixed with their mode identifier (so "nick" becomes "@nick" for example). To disable this behavior, set <tt>%PREFIX_NICKS</tt> to <tt>$false</tt>.
| |
| | |
| The beginning and end of buffer playback are marked with the default line separator by default. This can be changed to <tt>NORMAL</tt> to display the usual <tt>*** Buffer Playback.</tt> and <tt>*** Playback Complete</tt> messages or to <tt>NONE</tt> to not show any status message at all.
| |
| | |
| If you run into problems like all messages being displayed twice because of other <tt>ON TEXT</tt> processing scripts, try to set <tt>%EXTERNAL_RENDERER</tt> to <tt>$false</tt>.
| |
| | |
| The script also allows the use of spaces.dll to preserve consecutive spaces. To enable it just put <tt>spaces.dll</tt> (http://www.xise.nl/mirc/) into your <tt>Application Data</tt> folder and set <tt>%USE_SPACES_DLL</tt> to <tt>$true</tt>.
| |
| | |
| ==== Script ====
| |
| Information about loading mIRC scripts can be found [http://chanops.org/faqs/clients/how-to-load-an-mirc-script-into-your-main-mirc-program.html here].
| |
| alias -l config {
| |
| ; Mandatory settings
| |
| 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 = $true
| |
|
| |
| ; 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 = LINESEP
| |
|
| |
| ; 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 = $regml( 1 )
| |
|
| |
| 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
| |
| }
| |
| | |
| === irssi ===
| |
| This script '''requires''' these settings for your user:
| |
| | |
| TimestampFormat = [%H:%M:%S]
| |
| AppendTimestamp = false
| |
| PrependTimestamp = true
| |
| | |
| Otherwise you have to adjust the regex pattern in the script that grabs the timestamp.
| |
| | |
| Download the script from: http://cba.si/stuff/znc_timestamp.pl
| |
| | |
| Put it into ~/.irssi/scripts, then '''/script load znc_timestamp''' .
| |
| | |
| === WeeChat ===
| |
| * [http://www.weechat.org/files/scripts/unofficial/znc-playback.py znc-playback.py]
| |