notify_exclude: document channel masks (all channels except one)

reverse 2026-07-18 17:20:55 +00:00
parent 37e6d76c96
commit b38aac0bbc
No known key found for this signature in database
2 changed files with 7 additions and 3 deletions

@ -70,11 +70,11 @@ An audit channel for the incident feed. Notable actions are announced there; pri
[log] [log]
channel = "#services" channel = "#services"
`notify_exclude` is an optional list of masks whose users [OperServ NOTIFY](Services#operserv-network-operator-tools) never matches, so they cannot flood the feed. The classic case is PyLink relay clients — their nicks carry a `/network` suffix — so `"*/*"` silences every relayed user in one line. It accepts nick globs, `user@host`, or extbans (the same syntax as a NOTIFY mask), and is reloadable with `OperServ REHASH` (no restart). `notify_exclude` is an optional list of masks [OperServ NOTIFY](Services#operserv-network-operator-tools) never announces, so they cannot flood the feed. It uses the same grammar as a watch mask: a `#channel` mask mutes that channel, and any other mask (nick glob, `user@host`, extban) mutes a user. The classic user case is PyLink relay clients — their nicks carry a `/network` suffix — so `"*/*"` silences every relayed user; a channel entry like `"#staff"` keeps a broad `#*` watch out of that channel. Reloadable with `OperServ REHASH` (no restart).
[log] [log]
channel = "#services" channel = "#services"
notify_exclude = ["*/*"] # ignore PyLink relay clients (nick/network) notify_exclude = ["*/*", "#staff"] # relay clients, and never #staff
## [expire] ## [expire]

@ -51,7 +51,11 @@ A deliberately broad mask like `#*` (every channel) or `*` (every user) is allow
/msg OperServ REHASH /msg OperServ REHASH
-OperServ- Configuration reloaded from /etc/echo/config.toml. -OperServ- Configuration reloaded from /etc/echo/config.toml.
Excluded users are skipped by *every* watch, so genuine locals still surface while the relay noise is gone. The list also accepts `user@host` and extbans, e.g. `["*/fun", "*!*@relay.example"]`. See [Configuration → [log]](Configuration#log). Excluded masks are skipped by *every* watch, so genuine locals still surface while the relay noise is gone. The list uses the same grammar as a watch mask, so it excludes **users** (nick globs, `user@host`, extbans) **or channels**: a `#channel` mask mutes that channel. So "every join except #staff" is `#*` watched with `#staff` excluded:
notify_exclude = ["*/*", "#staff"] # relay clients, and never #staff
See [Configuration → [log]](Configuration#log).
## StatServ, statistics ## StatServ, statistics