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
>Jpnurmi |
→Scripts: link the weechat playback script |
||
(11 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
<!--{{External Module}}--> | <!--{{External Module}}--> | ||
{{ | {{External Module}} | ||
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 a certain point of time. | 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 | The source code is available on [https://github.com/jpnurmi/znc-playback GitHub]. See also instructions for [[compiling modules]]. | ||
== | {{Module arguments|no}} | ||
Please note that Playback is a Global module. Global modules can only be (un)loaded by a ZNC Admin. If the module does not appear in the module list within Webadmin, try loading the module with: | |||
<code>/msg *status loadmod playback</code> | |||
=== 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 <code>AutoClearChanBuffer</code> and <code>AutoClearQueryBuffer</code> 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 <code>znc.in/playback</code> capability. | |||
* [1] http://ircv3.net/specs/core/message-tags-3.2.html | |||
* [2] http://ircv3.net/specs/extensions/server-time-3.2.html | |||
=== Usage === | |||
In order for an IRC client to support advanced playback, it should request | |||
the <code>znc.in/playback</code> 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 == | === Supported clients === | ||
* [http://textualapp.com Textual IRC client] (Mac OS X) | * [http://textualapp.com Textual IRC client] (Mac OS X) | ||
* [http://colloquy.mobi Mobile Colloquy] (iOS) | |||
* [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]] | |||
* [https://github.com/AndrioCelos/kvirc-scripts/tree/capabilities/zncplayback KVIrc 4.9.2+]. | |||
* [https://weechat.org/scripts/source/zncplayback.py.html Weechat via <code>zncplayback.py</code>]. | |||
== Open | === Open tickets === | ||
* [ | * [https://hexchat.github.io HexChat] (https://github.com/hexchat/hexchat/issues/1109) | ||
* [https://play.google.com/store/apps/details?id=com.fusionx.lightirc&hl=en HoloIRC] (https://github.com/tilal6991/HoloIRC/issues/92) | * [https://play.google.com/store/apps/details?id=com.fusionx.lightirc&hl=en HoloIRC] (https://github.com/tilal6991/HoloIRC/issues/92) | ||
* [https://weechat.org WeeChat] (https://github.com/weechat/weechat/issues/323) | |||
[[Category:Modules]] | [[Category:Modules]] | ||
[[Category:External Modules]] | [[Category:External Modules]] |
Latest revision as of 20:45, 12 April 2023
This is an external module. Please note that it may or may not work with the current release (1.9.1). This module is not included in the default ZNC installation, and you will need to manually compile it before you can load this module. Contact the author if you have any questions, but feel free to ask in #znc on Libera.Chat. Someone might be able to help you there. |
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.
Please note that Playback is a Global module. Global modules can only be (un)loaded by a ZNC Admin. If the module does not appear in the module list within Webadmin, try loading the module with:
/msg *status loadmod playback
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.
- [1] http://ircv3.net/specs/core/message-tags-3.2.html
- [2] http://ircv3.net/specs/extensions/server-time-3.2.html
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
- Textual IRC client (Mac OS X)
- Mobile Colloquy (iOS)
- Communi for desktop (Mac OS X, Linux, Windows)
- Communi for SailfishOS
- Palaver (iOS)
- Mutter (iOS)