To create new wiki account, please join us on #znc at Libera.Chat and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.

Playback: Difference between revisions

From ZNC
Jump to navigation Jump to search
>Jpnurmi
latest dev is no longer needed
KindOne (talk | contribs)
Restore Playback from archive.org - 2016/09/26
Line 14: Line 14:
The module implementation is based on the IRC v3.2 message tags [1] and server time [2] extensions. The module injects a server time tag (in millisecond precision) to each message sent from ZNC to an IRC client that has requested the <code>znc.in/playback</code> capability.
The module implementation is based on the IRC v3.2 message tags [1] and server time [2] extensions. The module injects a server time tag (in millisecond precision) to each message sent from ZNC to an IRC client that has requested the <code>znc.in/playback</code> capability.


* [1] http://ircv3.org/specification/message-tags-3.2
* [1] http://ircv3.net/specs/core/message-tags-3.2.html
* [2] http://ircv3.org/extensions/server-time-3.2
* [2] http://ircv3.net/specs/extensions/server-time-3.2.html


=== Usage ===
=== Usage ===
Line 22: Line 22:
of received messages. The syntax for a buffer playback request is:
of received messages. The syntax for a buffer playback request is:


     /msg *playback PLAY <buffer(s)> [from] [to]
     /znc *playback PLAY <buffer(s)> [from] [to]


Where the first argument is a comma-separated list of channels (supports
Where the first argument is a comma-separated list of channels (supports
Line 29: Line 29:


When a client connects to ZNC, it may request the module to play all
When a client connects to ZNC, it may request the module to play all
buffers, starting from *0* (first connect) or the the timestamp of the
buffers, starting from *0* (first connect) or the timestamp of the
latest received message (consecutive reconnects).
latest received message (consecutive reconnects).


     /msg *playback PLAY * 0
     /znc *playback PLAY * 0


It is also possible to selectively clear playback buffers using the
It is also possible to selectively clear playback buffers using the
following command syntax:
following command syntax:


     /msg *playback CLEAR <buffer(s)>
     /znc *playback CLEAR <buffer(s)>


If a client wants to list available buffers, it can use the following
If a client wants to list available buffers, it can use the following
command syntax:
command syntax:


     /msg *playback LIST [buffer(s)]
     /znc *playback LIST [buffer(s)]


The module outputs a list of available/matching buffers, one per line,
The module outputs a list of available/matching buffers, one per line,
Line 48: Line 48:


See also [[query buffers]].
See also [[query buffers]].
'Note: using PRIVMSG instead of ZNC can result to other connected clients having queries with *playback with content of the commands called.'


=== Limits ===
=== Limits ===
Line 76: Line 78:
* [https://github.com/communi/communi-desktop Communi for desktop] (Mac OS X, Linux, Windows)
* [https://github.com/communi/communi-desktop Communi for desktop] (Mac OS X, Linux, Windows)
* [https://github.com/communi/communi-sailfish Communi for SailfishOS]
* [https://github.com/communi/communi-sailfish Communi for SailfishOS]
* [https://palaverapp.com Palaver] (iOS)
* [http://mutterirc.com Mutter] (iOS)
==== Scripts ====
* [[HexChat#Scripts]]


=== Open tickets ===
=== Open tickets ===

Revision as of 18:03, 2 April 2017

The advanced playback module makes it possible for IRC clients to avoid undesired repetitive buffer playback. IRC clients may request the module to send a partial buffer playback starting from and ending to a certain point of time.

The source code is available on GitHub. See also instructions for compiling modules.

Arguments

This user module takes no arguments.

Read loading modules to learn more about loading modules.

Persistent Buffers

The module has been designed to be used together with persistent buffers. Either uncheck Auto Clear Chan Buffer and Auto Clear Query Buffer (Your Settings -> Flags) via webadmin or disable AutoClearChanBuffer and AutoClearQueryBuffer via controlpanel.

Message tags

The module implementation is based on the IRC v3.2 message tags [1] and server time [2] extensions. The module injects a server time tag (in millisecond precision) to each message sent from ZNC to an IRC client that has requested the znc.in/playback capability.

Usage

In order for an IRC client to support advanced playback, it should request the znc.in/playback capability and keep track of the latest server time of received messages. The syntax for a buffer playback request is:

   /znc *playback PLAY <buffer(s)> [from] [to]

Where the first argument is a comma-separated list of channels (supports wildcards), and optional last two arguments are number of seconds (floating point for millisecond precision) elapsed since January 1, 1970.

When a client connects to ZNC, it may request the module to play all buffers, starting from *0* (first connect) or the timestamp of the latest received message (consecutive reconnects).

   /znc *playback PLAY * 0

It is also possible to selectively clear playback buffers using the following command syntax:

   /znc *playback CLEAR <buffer(s)>

If a client wants to list available buffers, it can use the following command syntax:

   /znc *playback LIST [buffer(s)]

The module outputs a list of available/matching buffers, one per line, each followed by the first and last timestamp for the respective buffer.

See also query buffers.

'Note: using PRIVMSG instead of ZNC can result to other connected clients having queries with *playback with content of the commands called.'

Limits

The module also allows configuring client specific buffer limits for identified clients, using the following command syntax:

   /msg *playback LIMIT <client> [limit]

A limit of less or equal to 0 clears the limit. Notice that the limit cannot exceed the limit set in the ZNC configuration, but can be used to limit the playback for eg. mobile clients.

Client identifiers

ZNC supports passing a client identifier in the password:

   username@identifier/network:password

or in the username:

   username@identifier/network

Supported clients

Scripts

Open tickets