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.
Snomask
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 snomask module allows filtering server notices depending on the client identifier. One of the use cases includes not receiving a stream of snotices on a mobile client.
The source code can be found on Github. For installation instructions see compiling modules, do not forget to also copy the data/
directory.
Mechanism
The module maintains a list of patterns corresponding to snomask letters. When a server notice is received, it is checked against all available patterns, and if a corresponding snomask letter is found, and if that letter is not found in the snomask associated with the current client identifier, then the notice is dropped. If the client has no identifier, or an unknown one, no notices are dropped. Notice that in order to receive particular notices, the respective snomask letter needs to also be present in your actual server-side snomask, as otherwise even ZNC itself will not receive the notices.
Arguments
This user module takes no arguments.
Read loading modules to learn more about loading modules.
Usage
The module has a webadmin interface, and everything is configurable from there. Other than that the following commands are available via *snomask
:
Snomask [letters]
Display or change the set of letters whose respective snotices are allowed under the current client identifier. The syntax is similar to modes, for example -tc+oC-n
will remove the cnt
letters but add Co
.
AddClient [identifier]
Register a given client identifier, or, if omitted, use the current client's identifier. Once this is done, all clients using this identifier will be subject to filtering.
DelClient [identifier]
Delete a client identifier. Clients with this identifier will be no longer subject to filtering.
ListClients
List client identifiers and their snomasks.
You can also edit the snomask definitions via commands, in a fashion similar to perform:
ListDefs
Display all definitions along with their ids.
AddDef <definition>
Append a definition to the list.
DelDef <id>
Delete a definition. This will also shift all subsequent ids down by one.
SwapDefs <id> <id>
Swap 2 definitions.
DefaultDefs
Restore the default definitions.
Definition Syntax
A definition consists of a snomask letter followed by a space followed by a pattern. Both the webadmin and the command interfaces allow comments beginning with #
. Patterns can contain *
which will match an arbitrary sequence of characters. You can also match an asterisk with \*
and a backslash with \\
.
For example:
x \*\*\* Notice -- Server * split from *
If we receive a server notice with, e.g, *** Notice -- Server foo.bar split from baz.qux
, the above definition will route it to the letter x
.